- run_app with existing loop
- Requeue when locked via delay queue, skip if task status is "finished"
- Add --ignore-lock option to skip aioredis based task locking
- Do not use zsets in redis for cancellation list [vangheem]
- Set guillotina.AccessContent permission to GET task [qiwn]
- More metrics on job execution
- Lower default number of max_running_tasks, as each task is potentially a different connection to the database.
- Allow to retry tasks forever
- Add metrics on jobs, statuses, amqp and redis [vangheem]
- Fix getting metric [vangheem]
- Ack canceled tasks so they are cleaned up from the main queue [lferran]
- Filter job_data in task info if the requester is not root [acatlla]
- Handle KeyError when attempting to queue tasks but amqp settings are not present [lferran]
- Fix unsafe thread operation: creating asyncio task from another thread [vangheem]
- Fix after commit handler [vangheem]
- Retry rabbitQM TimeoutErrors [lferran]
- bump
- Retry ConnectionResetError on redis [lferran]
- Retry if rabbitmq is down when getting new connections [lferran]
- add py.typed to manifest
- bump
- Be able to import types
- Schedule NOOP tasks from worker to prevent channel from hanging [lferran]
- Do not exit when tasks are running
- safe exit
- Better handling in tests [vangheem]
- Restart worker if no connection activity in last 5 minutes [lferran]
- Removed beacon system [lferran]
- Exit worker on error starting up. [vangheem]
- Fix self.request [qiwn]
- Upgrade to guillotina 5
- restrict compat g version
- Copy all headers from original request to task [vangheem]
- Log exception with unhandled task errors [vangheem]
- Include actual callable in metrics labels
- Optionally serve /metrics for prometheus metrics
- Fix metrics
- Add container id label in metric [lferran]
- Add prometheus metrics [lferran]
- Provide b/w compatible @amqp-info and @amqp-cancel endpoints. Marked for complete removal in version 4. [vangheem]
- Rename DELETE @amqp-cancel/{task_id} to DELETE @amqp-tasks/{task_id} [vangheem]
- Rename GET @amqp-info/{task_id} to GET @amqp-tasks/{task_id} [vangheem]
- API methods should be constrained to only work against a container [vangheem]
- Make sure max_running_tasks is always an integer [vangheem]
- Fix releasing task [vangheem]
- Fix issue where tasks would never be scheduled or consuming would be extremely slow [vangheem]
- Fix spamming when waiting for tasks to finish [vangheem]
- Do not retry tasks for objects that are no longer in the database [lferran]
- Bugfix: make prefetch count match the configured max running tasks [lferran]
- Use glogging [lferran]
- Expire finished and errored tasks
- Make max running tasks parameter configurable
- Refactor way we update task states
- Make sure that abort is run after job failure [vangheem]
- Execute request.execute_futures() after successful [vangheem]
- Added custom permission for amqp endpoints and assigned to guillotina.Manager role by default [lferran]
- Configurable ttls for delay and error queues [lferran]
- Fix publish_beacon_to_delay_queue call sig error [vangheem]
- Fix guillotina_rediscache constraint [vangheem]
Bugfix:
- support async generators for object tasks aswell [lferran]
- Don't use globals for the beacons liveness system and move the code to the BeaconsManager class (1 manager per connection) [davidonna]
Major improvements:
- Added task retrial using delay queue
- Tasks are only ACKed if successful, otherwise are sent to delay queue
- Allow task cancelation
- Improved API
- Upgraded to guillotina 4
- Added plenty of tests for worker, amqp and state manager
- Retry on conflict error [vangheem]
- Provide @task-status/{id} endpoint [vangheem]
- Fix port references [vangheem]
- Fix [vangheem]
- Be able to add tasks after request and commit [vangheem]
- Copy request annotation data over as well [vangheem]
- Fix serialization issues with roles
- Handle invalid state manager
- Fix again
- Really release
- initial