Skip to content

Upgrading arq 0.15 to 0.16

Unknown0.15.1 → 0.16.1New3Changed1Fixed1Other6

UnknownUpgrade verdict

DepDelta hasn't looked for the notes of 3 of 10 releases yet, so breaking changes can't be ruled out.

  • DepDelta hasn't finished looking for the notes in this range, so it can't rule out breaking changes yet.
  • Their commits are listed with this comparison.
Unknown for releases without notes

Releases without notes may still need changes. Check their commits before upgrading.

Adds aioredis >=1.1.0, async-timeout >=3.0.0, click >=6.7, pydantic >=0.20.

Installs 8 packages in all (was 0).

Also installs annotated-types, pydantic-core, typing-extensions, typing-inspection.

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • added: export ArqRedis
  • added: export Retry
  • added: export Worker
  • added: export check_health
  • added: export create_pool
  • added: export cron
  • added: export func
  • added: export run_worker
  • changed: function cli(*, worker_path, worker_class, burst, check, verbose) → function cli(*, worker_settings, burst, check, watch, verbose)
  • added: async function watch_reload(path, worker_settings, loop)
  • added: variable watch_help
  • added: async function create_pool(settings: RedisSettings=…, *, _retry: int=…) -> ArqRedis
  • added: async function log_redis_info(redis, log_func)
  • added: async method ArqRedis.all_job_results() -> List[JobResult]
  • added: async method ArqRedis.enqueue_job(function: str, *args: Any, _job_id: Optional[str]=…, _queue_name: str=…, _defer_until: Optional[datetime]=…, _defer_by: Union[None, int, float, timedelta]=…, _expires: Union[None, int, float, timedelta]=…, _job_try: Optional[int]=…, **kwargs: Any) -> Optional[Job]
  • added: class ArqRedis(Redis)
  • added: class RedisSettings
  • added: field RedisSettings.conn_retries: int
  • added: field RedisSettings.conn_retry_delay: int
  • added: field RedisSettings.conn_timeout: int
  • added: field RedisSettings.database: int
  • added: field RedisSettings.host: str
  • added: field RedisSettings.password: str
  • added: field RedisSettings.port: int
  • added: variable expires_extra_ms
  • added: variable logger
  • added: variable default_queue_name
  • added: variable health_check_key_suffix
  • added: variable in_progress_key_prefix
  • added: variable job_key_prefix
  • added: variable result_key_prefix
  • added: variable retry_key_prefix
  • added: class CronJob
  • added: class D(str, Enum)
  • added: field CronJob.coroutine: Callable
  • added: field CronJob.day: Union[None, set, int]
  • added: field CronJob.hour: Union[None, set, int]
  • added: field CronJob.keep_result_s: Optional[float]
  • added: field CronJob.max_tries: Optional[int]
  • added: field CronJob.microsecond: int
  • added: field CronJob.minute: Union[None, set, int]
  • added: field CronJob.month: Union[None, set, int]
  • added: field CronJob.name: str
  • added: field CronJob.next_run: datetime
  • added: field CronJob.run_at_startup: bool
  • added: field CronJob.second: Union[None, set, int]
  • added: field CronJob.timeout_s: Optional[float]
  • added: field CronJob.unique: bool
  • added: field CronJob.weekday: Union[None, set, int, str]
  • added: field D.day
  • added: field D.hour
  • added: field D.microsecond
  • added: field D.minute
  • added: field D.month
  • added: field D.second
  • added: field D.weekday
  • added: function cron(coroutine: Union[str, Callable], *, name: Optional[str]=…, month: Union[None, set, int]=…, day: Union[None, set, int]=…, weekday: Union[None, set, int, str]=…, hour: Union[None, set, int]=…, minute: Union[None, set, int]=…, second: Union[None, set, int]=…, microsecond: int=…, run_at_startup: bool=…, unique: bool=…, timeout: Optional[SecondsTimedelta]=…, keep_result: Optional[float]=…
  • added: function next_cron(previous_dt: datetime, *, month: Union[None, set, int]=…, day: Union[None, set, int]=…, weekday: Union[None, set, int, str]=…, hour: Union[None, set, int]=…, minute: Union[None, set, int]=…, second: Union[None, set, int]=…, microsecond: int=…)
  • added: method CronJob.set_next(dt: datetime)
  • added: variable dt_fields
  • added: variable weekdays
  • removed: async method Drain.finish(timeout=…)
  • removed: async method Drain.iter(*raw_queues: bytes, pop_timeout=…)
  • removed: class Drain
  • removed: constructor Drain(*, redis: Redis, max_concurrent_tasks: int=…, shutdown_delay: float=…, timeout_seconds: int=…, burst_mode: bool=…, raise_task_exception: bool=…, semaphore_timeout: float=…) -> None
  • removed: method Drain.add(coro, job, re_enqueue=…)
  • removed: property Drain.jobs_in_progress
  • removed: class DatetimeJob(Job)
  • removed: class JobSerialisationError(ArqError)
  • removed: method Job.encode()
  • removed: method Job.short_ref()
  • removed: method Job.to_string(args_curtail=…)
  • removed: static method DatetimeJob.msgpack_encoder(obj)
  • removed: static method DatetimeJob.msgpack_object_hook(obj)
  • removed: static method Job.decode(raw_data: bytes, *, queue_name: str=…, raw_queue: str=…) -> Job
  • removed: static method Job.decode_raw(data: bytes)
  • removed: static method Job.encode_raw(data) -> bytes
  • removed: static method Job.generate_id(given_id)
  • removed: static method Job.msgpack_encoder(obj)
  • removed: static method Job.msgpack_object_hook(obj)
  • changed: constructor Job(*, class_name: str, func_name: str, args: tuple, kwargs: dict, job_id: str=…, queue: str=…, raw_queue: str=…, queued_at: int=…, raw_data: bytes=…) -> None → constructor Job(job_id: str, redis, _queue_name: str=…)
  • added: async method Job.info() -> Optional[JobDef]
  • added: async method Job.result(timeout: Optional[float]=…, *, pole_delay: float=…) -> Any
  • added: async method Job.result_info() -> Optional[JobResult]
  • added: async method Job.status() -> JobStatus
  • added: class JobDef
  • added: class JobResult(JobDef)
  • added: class JobStatus(str, Enum)
  • added: class PickleError(RuntimeError)
  • added: field JobDef.args: tuple
  • added: field JobDef.enqueue_time: datetime
  • added: field JobDef.function: str
  • added: field JobDef.job_try: int
  • added: field JobDef.kwargs: dict
  • added: field JobDef.score: Optional[int]
  • added: field JobResult.finish_time: datetime
  • added: field JobResult.job_id: Optional[str]
  • added: field JobResult.result: Any
  • added: field JobResult.start_time: datetime
  • added: field JobResult.success: bool
  • added: field JobStatus.complete
  • added: field JobStatus.deferred
  • added: field JobStatus.in_progress
  • added: field JobStatus.not_found
  • added: field JobStatus.queued
  • added: function pickle_job(function_name: str, args: tuple, kwargs: dict, job_try: int, enqueue_time_ms: int)
  • added: function pickle_result(function: str, args: tuple, kwargs: dict, job_try: int, enqueue_time_ms: int, success: bool, result: Any, start_ms: int, finished_ms: int, ref: str) -> Optional[bytes]
  • added: function unpickle_job(r: bytes) -> JobDef
  • added: function unpickle_job_raw(r: bytes) -> tuple
  • added: function unpickle_result(r: bytes) -> JobResult
  • added: variable logger
  • removed: class ColourHandler(logging.StreamHandler)
  • removed: method ColourHandler.emit(record)
  • removed: async method Actor.close(shutdown=…)
  • removed: async method Actor.enqueue_job(func_name: str, *args, queue: str=…, **kwargs) -> Job
  • removed: async method Actor.run_cron()
  • removed: async method Actor.shutdown()
  • removed: async method Actor.startup()
  • removed: class Actor(RedisMixin)
  • removed: constructor Actor(*args, worker=…, concurrency_enabled=…, **kwargs)
  • removed: field Actor.CRON_SENTINEL_PREFIX
  • removed: field Actor.DEFAULT_QUEUE
  • removed: field Actor.HIGH_QUEUE
  • removed: field Actor.LOW_QUEUE
  • removed: field Actor.QUEUE_PREFIX
  • removed: field Actor.job_class
  • removed: field Actor.name: Optional[str]
  • removed: field Actor.queues
  • removed: field Actor.re_enqueue_jobs
  • removed: function concurrent(func_or_queue)
  • removed: function cron(*, month: Union[None, set, int]=…, day: Union[None, set, int]=…, weekday: Union[None, set, int, str]=…, hour: Union[None, set, int]=…, minute: Union[None, set, int]=…, second: Union[None, set, int]=…, microsecond: int=…, dft_queue=…, run_at_startup=…, unique=…)
  • removed: method Actor.job_future(redis, queue: str, job)
  • removed: async function create_pool_lenient(settings: RedisSettings, loop: asyncio.AbstractEventLoop, *, _retry: int=…) -> Redis
  • removed: async method RedisMixin.close()
  • removed: async method RedisMixin.create_redis_pool()
  • removed: async method RedisMixin.get_redis() -> Redis
  • removed: async method RedisMixin.log_redis_info(log_func)
  • removed: class RedisMixin
  • removed: class RedisSettings
  • removed: constructor RedisMixin(*, loop: asyncio.AbstractEventLoop=…, redis_settings: RedisSettings=…, existing_redis: Redis=…) -> None
  • removed: constructor RedisSettings(host=…, port=…, database=…, password=…, conn_timeout=…, conn_retries=…, conn_retry_delay=…)
  • removed: function next_cron(preview_dt: datetime, *, month: Union[None, set, int]=…, day: Union[None, set, int]=…, weekday: Union[None, set, int, str]=…, hour: Union[None, set, int]=…, minute: Union[None, set, int]=…, second: Union[None, set, int]=…, microsecond: int=…)
  • added: async function poll(step: float=…)
  • added: function args_to_string(args, kwargs)
  • added: function as_int(f: float) -> int
  • added: function ms_to_datetime(unix_ms: int) -> datetime
  • added: function timestamp_ms() -> int
  • added: function to_ms(td: Optional[SecondsTimedelta]) -> Optional[int]
  • added: function to_seconds(td: Optional[SecondsTimedelta]) -> Optional[float]
  • added: function to_unix_ms(dt: datetime) -> int
  • added: function truncate(s: str, length: int=…) -> str
  • added: variable DEFAULT_CURTAIL
  • added: variable SecondsTimedelta
  • added: variable epoch
  • added: variable epoch_tz
  • added: variable logger
  • removed: async method BaseWorker.close()
  • removed: async method BaseWorker.heart_beat(redis_queues, queue_lookup)
  • removed: async method BaseWorker.record_health(redis_queues, queue_lookup)
  • removed: async method BaseWorker.run(log_redis_version=…)
  • removed: async method BaseWorker.run_job(j: Job)
  • removed: async method BaseWorker.shadow_factory() -> list
  • removed: async method BaseWorker.shadow_kwargs()
  • removed: async method BaseWorker.work()
  • removed: class BaseWorker(RedisMixin)
  • removed: class RunWorkerProcess
  • removed: class StopJob(ArqError)
  • removed: constructor BaseWorker(*, burst: bool=…, shadows: list=…, queues: list=…, timeout_seconds: int=…, **kwargs) -> None
  • removed: constructor RunWorkerProcess(worker_path, worker_class, burst=…)
  • removed: constructor StopJob(reason: str=…, warning: bool=…) -> None
  • removed: field BaseWorker.drain_class
  • removed: field BaseWorker.health_check_interval
  • removed: field BaseWorker.health_check_key
  • removed: field BaseWorker.jobs_complete
  • removed: field BaseWorker.jobs_failed
  • removed: field BaseWorker.jobs_timed_out
  • removed: field BaseWorker.log_curtail
  • removed: field BaseWorker.max_concurrent_tasks
  • removed: field BaseWorker.repeat_health_check_logs
  • removed: field BaseWorker.reusable
  • removed: field BaseWorker.shadows
  • removed: field BaseWorker.shutdown_delay
  • removed: field BaseWorker.timeout_seconds
  • removed: function import_string(file_path, attr_name)
  • removed: method BaseWorker.get_redis_queues()
  • removed: method BaseWorker.handle_prepare_exc(msg: str)
  • removed: method BaseWorker.handle_proxy_signal(signum)
  • removed: method BaseWorker.handle_sig(signum)
  • removed: method BaseWorker.handle_sig_force(signum, frame)
  • removed: method BaseWorker.log_job_result(started_at: float, result, j: Job)
  • removed: method BaseWorker.log_job_start(started_at: float, j: Job)
  • removed: method BaseWorker.run_until_complete(log_redis_version=…)
  • removed: method RunWorkerProcess.handle_sig(signum, frame)
  • removed: method RunWorkerProcess.handle_sig_force(signum, frame)
  • removed: method RunWorkerProcess.run_worker(worker_path, worker_class, burst)
  • removed: property BaseWorker.running
  • removed: property BaseWorker.shadow_names
  • removed: static method BaseWorker.check_health(**kwargs)
  • removed: static method BaseWorker.handle_execute_exc(started_at: float, exc: BaseException, j: Job)
  • removed: static method BaseWorker.handle_stop_job(started_at: float, exc: StopJob, j: Job)
  • removed: static method BaseWorker.logging_config(verbose) -> dict
  • added: async function async_check_health(redis_settings: Optional[RedisSettings], health_check_key: Optional[str]=…, queue_name: Optional[str]=…)
  • added: async method Worker.abort_job(job_id: str, result_data: bytes)
  • added: async method Worker.async_run() -> None
  • added: async method Worker.close()
  • added: async method Worker.finish_job(job_id: str, finish: bool, result_data: bytes, result_timeout_s: Optional[int], incr_score: int)
  • added: async method Worker.heart_beat()
  • added: async method Worker.main()
  • added: async method Worker.record_health()
  • added: async method Worker.run_check(retry_jobs: Optional[bool]=…, max_burst_jobs: Optional[int]=…) -> int
  • added: async method Worker.run_cron()
  • added: async method Worker.run_job(job_id, score)
  • added: async method Worker.run_jobs(job_ids)
  • added: class FailedJobs(RuntimeError)
  • added: class Function
  • added: class JobExecutionFailed(RuntimeError)
  • added: class Retry(RuntimeError)
  • added: class Worker
  • added: constructor FailedJobs(count, job_results)
  • added: constructor Retry(defer: Optional[SecondsTimedelta]=…)
  • added: constructor Worker(functions: Sequence[Function]=…, *, queue_name: str=…, cron_jobs: Optional[Sequence[CronJob]]=…, redis_settings: RedisSettings=…, redis_pool: ArqRedis=…, burst: bool=…, on_startup: Callable[[Dict], Awaitable]=…, on_shutdown: Callable[[Dict], Awaitable]=…, max_jobs: int=…, job_timeout: SecondsTimedelta=…, keep_result: SecondsTimedelta=…, poll_delay: SecondsTimedelta=…, max_tries…
  • added: field Function.coroutine: Callable
  • added: field Function.keep_result_s: Optional[float]
  • added: field Function.max_tries: Optional[int]
  • added: field Function.name: str
  • added: field Function.timeout_s: Optional[float]
  • added: function check_health(settings_cls) -> int
  • added: function create_worker(settings_cls, **kwargs) -> Worker
  • added: function func(coroutine: Union[str, Function, Callable], *, name: Optional[str]=…, keep_result: Optional[SecondsTimedelta]=…, timeout: Optional[SecondsTimedelta]=…, max_tries: Optional[int]=…) -> Function
  • added: function get_kwargs(settings_cls)
  • added: function run_worker(settings_cls, **kwargs) -> Worker
  • added: method Worker.handle_sig(signum)
  • added: method Worker.run() -> None
  • added: variable logger
  • added: variable no_result