Improvements:
Remove Yajl dependency in favor of stdlib json.
Update for Ruby 2.7
Changes:
Requires Ruby 2.6+
Improvements:
Rescue timeouts when adjusting workers
Bugfixes:
Be more paranoid about shared channels, and be defensive when using the counting queue.
Bugfixes:
Re-establish AMQP connections after the task fork
Bugfixes:
Rescue all runtime errors when measuring queue depth
Bugfixes:
Longlived workers: recover from a closed channel error on the job-counting queue.
Enhancements:
Set a proctitle for all tasks, not just those that include the Metrics mixin.
Bugfixes:
Fix a bunch of bugs with scaling, idle timeout, and message- counting.
Clean up unused @pids variable in longlived task group
Housekeeping:
Bump msgpack dependency for Ruby 2.4 support.
Housekeeping:
Bump Configurability dependency.
Migrate away from .rvmrc.
Enhancements:
Add a setting to tasks to force them to always rebind
Invert scaling logic to handle initial load
Fixes:
Ensure the work callback's block returns the work() rval, instead of the current time. This fixes Task acknowledgement.
Fixes:
Make Symphony.tasks
contain just the task names. The Daemon will now load task classes on startup. This is so code can depend on Symphony
without loading every configured task anytime its config loads.
Improvements:
Implement task work models
Include the first backtrace frame when logging job errors
Bugfixes:
Fix the patterns used by Symphony::Routing
to match RabbitMQ topic-queue matching.
Add route options to routing mixin
Don't hardcode the path to the config file, letting it instead be set on the command line or via the environment.
Add a 'before_fork' hook to Symphony::Task
.
Handle SIGQUIT the same as SIGINT and SIGTERM in the daemon.
Set cancel-on-failover flag in the queue consumer
Allow a task to declare its queue as persistant.
Break out SSH tasks into their own gem
Remove the interval expression parser; scheduling will be part of an separate library if we decide to release it.
Don't set up default signal handlers for WINCH and CHLD for Tasks.
Add an interval expression parsing library in preparation for Symphony
scheduling.
Enhancement:
Add an optional (disabled by default) timeout for the signal handling wait_for_signals() method, for potential re-use in alternate loop actions.
Rewritten for AMQP and renamed to Symphony
.
Added beginnings of worker throttling.
Updating dependencies
Initial release.