2
0
mirror of https://github.com/hibiken/asynq.git synced 2024-11-15 20:08:46 +08:00
asynq/CHANGELOG.md
2020-07-28 22:46:41 -07:00

6.0 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on "Keep a Changelog", and this project adheres to Semantic Versioning.

[Unreleased]

[0.11.0] - 2020-07-28

Added

  • Inspector type was added to monitor and mutate state of queues and tasks.
  • HealthCheckFunc and HealthCheckInterval fields were added to Config to allow user to specify a callback function to check for broker connection.

[0.10.0] - 2020-07-06

Changed

  • All tasks now requires timeout or deadline. By default, timeout is set to 30 mins.
  • Tasks that exceed its deadline are automatically retried.
  • Encoding schema for task message has changed. Please install the latest CLI and run migrate command if you have tasks enqueued with the previous version of asynq.
  • API of (*Client).Enqueue, (*Client).EnqueueIn, and (*Client).EnqueueAt has changed to return a *Result.
  • API of ErrorHandler has changed. It now takes context as the first argument and removed retried, maxRetry from the argument list. Use GetRetryCount and/or GetMaxRetry to get the count values.

[0.9.4] - 2020-06-13

Fixed

[0.9.3] - 2020-06-12

Fixed

[0.9.2] - 2020-06-08

Added

  • The pause and unpause commands were added to the CLI. See README for the CLI for details.

[0.9.1] - 2020-05-29

Added

  • GetTaskID, GetRetryCount, and GetMaxRetry functions were added to extract task metadata from context.

[0.9.0] - 2020-05-16

Changed

  • Logger interface has changed. Please see the godoc for the new interface.

Added

  • LogLevel type is added. Server's log level can be specified through LogLevel field in Config.

[0.8.3] - 2020-05-08

Added

  • Close method is added to Client.

[0.8.2] - 2020-05-03

Fixed

[0.8.1] - 2020-04-27

Added

  • ParseRedisURI helper function is added to create a RedisConnOpt from a URI string.
  • SetDefaultOptions method is added to Client.

[0.8.0] - 2020-04-19

Changed

  • Background type is renamed to Server.
  • To upgrade from the previous version, Update NewBackground to NewServer and pass Config by value.
  • CLI is renamed to asynq.
  • To upgrade the CLI to the latest version run go get -u github.com/hibiken/tools/asynq
  • The ps command in CLI is renamed to servers
  • Concurrency defaults to the number of CPUs when unset or set to a negative value.

Added

  • ShutdownTimeout field is added to Config to speicfy timeout duration used during graceful shutdown.
  • New Server type exposes Start, Stop, and Quiet as well as Run.

[0.7.1] - 2020-04-05

Fixed

  • Fixed signal handling for windows.

[0.7.0] - 2020-03-22

Changed

  • Support Go v1.13+, dropped support for go v1.12

Added

  • Unique option was added to allow client to enqueue a task only if it's unique within a certain time period.

[0.6.2] - 2020-03-15

Added

  • Use method was added to ServeMux to apply middlewares to all handlers.

[0.6.1] - 2020-03-12

Added

  • Client can optionally schedule task with asynq.Deadline(time) to specify deadline for task's context. Default is no deadline.
  • Logger option was added to config, which allows user to specify the logger used by the background instance.

[0.6.0] - 2020-03-01

Added

  • Added ServeMux type to make it easy for users to implement Handler interface.
  • ErrorHandler type was added. Allow users to specify error handling function (e.g. Report error to error reporting service such as Honeybadger, Bugsnag, etc)

[0.5.0] - 2020-02-23

Changed

  • Client API has changed. Use Enqueue, EnqueueAt and EnqueueIn to enqueue and schedule tasks.

Added

  • asynqmon workers was added to list all running workers information

[0.4.0] - 2020-02-13

Changed

  • Handler interface has changed. ProcessTask method takes two arguments context.Context and *asynq.Task
  • Queues field in Config has change from map[string]uint to map[string]int

Added

  • Client can optionally schedule task with asynq.Timeout(duration) to specify timeout duration for task. Default is no timeout.
  • asynqmon cancel [task id] will send a cancelation signal to the goroutine processing the speicified task.

[0.3.0] - 2020-02-04

Added

  • asynqmon ps was added to list all background worker processes

[0.2.2] - 2020-01-26

Fixed

  • Fixed restoring unfinished tasks back to correct queues.

Changed

  • asynqmon ls command is now paginated (default 30 tasks from first page)
  • asynqmon ls enqueued:[queue name] requires queue name to be specified

[0.2.1] - 2020-01-22

Fixed

  • More structured log messages
  • Prevent spamming logs with a bunch of errors when Redis connection is lost
  • Fixed and updated README doc

[0.2.0] - 2020-01-19

Added

  • NewTask constructor
  • Queues option in Config to specify mutiple queues with priority level
  • Client can schedule a task with asynq.Queue(name) to specify which queue to use
  • StrictPriority option in Config to specify whether the priority should be followed strictly
  • RedisConnOpt to abstract away redis client implementation
  • [CLI] asynqmon rmq command to remove queue

Changed

  • Client and Background constructors take RedisConnOpt as their first argument.
  • asynqmon stats now shows the total of all enqueued tasks under "Enqueued"
  • asynqmon stats now shows each queue's task count
  • asynqmon history now doesn't take any arguments and shows data from the last 10 days by default (use --days flag to change the number of days)
  • Task type is now immutable (i.e., Payload is read-only)

[0.1.0] - 2020-01-04

Added

  • Initial version of asynq package
  • Initial version of asynqmon CLI