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.
In plain terms
- 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.
Must act 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.
API changes
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