Commit Graph
90 Commits
Author SHA1 Message Date
Ilan Steemers b5a01a9e93 Removes old rollbar support - relies on the pluggable error reporters now 2018-08-10 13:03:58 +02:00
Ilan Steemers 7d5c9f8b46 removes xrange compat 2018-08-05 13:39:04 +02:00
Ilan Steemers bd062503c5 Adds tracebacks in error logs @strets123 2018-08-05 11:13:16 +02:00
Ilan Steemers acebdaa850 Renames async/enqueue to async_task. 2018-08-01 15:20:34 +02:00
Pierre-Elliott Bécue ae75a84f7f Replaces async occurrences with alternatives
* async is now a reserved word in python3.7
 * Rename async function to enqueue
 * Rename all async_ functions to enqueue_
 * Rename Async class to AsyncTask
 * Updates the docs.
2018-07-07 21:33:43 +02:00
Ilan Steemers d5e430be44 Merge pull request #298 from Balletie/master
Add option for acknowledging failed tasks (globally and per-task)
2018-03-13 15:24:31 +01:00
Eagllus 8f87bc352f Change imports for cluster and tasks 2018-03-13 09:28:17 +01:00
Eagllus 9c39546417 Change imports signing classes explicit 2018-03-13 09:22:09 +01:00
Balletie 03abbc960f Add option for acknowledging failed tasks (globally and per-task)
If a task fails with an exception, it is retried until it
succeeds. This is contrary to what is said in the documentation: under
the "Architecture" section, heading "Broker" it says that even when a
task errors, it's still considered a successful delivery. Failed tasks
never get acknowledged however, thereby being retried after the
timeout period. See also issues #238 and #194.

This patch adds an option to acknowledge failures, thereby closing
issue #238. Issue #194 would require some more work. The default of
this option is set to `False`, thereby maintaining backwards
compatibility.
2018-03-09 22:09:46 +01:00
Ronald van Zon dd4f02f122 Add custom SharedCounter / Queue
This will not fix anything related to Django 2.0 but will allow MAC
users to run Django-Q allowing tests to be run locally.
2017-12-13 14:36:12 +01:00
Daniel Welch 4530b05d86 putting back support for backwards compatibility 2017-10-06 13:26:43 -04:00
Daniel Welch f90c4f5747 merge conflict resolution 2017-10-03 16:55:28 -04:00
Benjamin Bach 5ea55e3718 Import python3 version of range 2017-07-09 21:44:25 +02:00
Benjamin Bach ab48bad0f6 Remove unused dependency and sys module patching 2017-07-09 21:14:08 +02:00
Daniel Welch aac6984ec3 replace rollbar reporting with generic error_reporter reporting in cluster.py 2017-03-30 22:02:31 -04:00
Aurélien Bompard 77c5bb0737 Add signals
Fixes #219
2017-03-03 14:25:04 +01:00
Yann Pomarede 78b997e88f fix typo 2016-12-05 14:58:42 +01:00
Yann Pomarede aa667b40d4 daemonize_workers option 2016-12-05 14:55:42 +01:00
yannpom 3b8199cb8f set daemon to False 2016-12-05 12:21:41 +01:00
Vladimir Rychkov 1a1385dfba Guard loop sleep made configurable 2016-07-12 13:08:17 +01:00
Matt Bone 823ca0c51b allow scheduler to schedule all pending tasks 2016-04-21 16:31:34 -05:00
Ilan Steemers 6026953132 Fixes typo in Save limit 2016-04-06 20:33:26 +02:00
Ilan Steemers 763fff34c0 Makes it possible to set a schedules group name via q_options dict 2016-02-24 11:22:58 +01:00
Ilan Steemers 2e965b1631 Closes db connections on reincarnate 2016-02-24 10:08:09 +01:00
Ilan Steemers c66f0b74ed Closes all db connections on worker recycle 2016-02-16 11:29:43 +01:00
Ilan Steemers c75ab4e7f0 Only updates existing tasks if it was failing
updates stopped, result and success only for existing task results if the original result was failing. Otherwise the result is discarded.
2016-01-20 14:11:53 +01:00
Ilan Steemers 66771f274a Save task now creates or updates
This way failed tasks that get requeued can have a changed status and result
2016-01-19 22:49:28 +01:00
Ilan Steemers 0e8ea25396 Only acks task if it's succesful 2016-01-18 10:51:28 +01:00
Ilan Steemers d29c861d09 Adds Rollbar support for exceptions
Also formats exceptions in case they are unprintable
2016-01-07 18:50:55 +01:00
Ilan Steemers 02bd14c169 Fixes bug where task with a group only has a group result. 2015-10-26 19:35:07 +01:00
Ilan Steemers 69551793c0 adds timeout to group_key cache object 2015-10-19 15:42:05 +02:00
Ilan Steemers 2df29b908c Adds tests for task chains
adds several small improvements based on the problems that surfaced during writing the tests
2015-10-17 18:49:45 +02:00
Ilan Steemers 6dcead7310 Adds task chains 2015-10-17 12:13:29 +02:00
Ilan Steemers 2ba88f2d17 adds cached option to async_iter 2015-10-06 19:37:02 +02:00
Ilan Steemers f73ae66c0f Adds async_iter command
With async iter you can quickly run the same function on an iterable set of arguments. The results are held in the cache until all are done and collated into a database result.
2015-10-03 18:07:57 +02:00
Ilan Steemers 33282cb2e5 cached result backend
first version of a result backend using django's cache framework
2015-10-01 14:58:28 +02:00
Ilan Steemers 1aed7c2d00 #79 close django db connection before fork
The sentinel saves a statistic to the cache provider just before forking the workers. If this cache provider is a database backend, the connection stays open and gets forked and it crashes. Solution is to close any db connection before forking.
2015-09-29 10:47:22 +02:00
Ilan Steemers 765c84301f #76 checks for stale connections always
It turns out that checking stale connections on a timer takes between 1-2 times as long as just checking them always. This also has the benefit of catching timeouts that happen between timer loops.
2015-09-28 12:48:11 +02:00
Ilan Steemers 7075a91d37 #76 adds connection checked with timeout
Adds a check for old connections in both the workers and the monitor , every DB_TIMEOUT seconds
2015-09-28 11:42:48 +02:00
Ilan Steemers 4ceee42be9 #76 resets stale db connection on every scheduler ping 2015-09-28 10:42:08 +02:00
Ilan Steemers 131a37daf3 Removes Pycharm stdin bug workaround 2015-09-24 11:21:50 +02:00
Ilan Steemers 7fb1142e4e Shares Sentinel broker with Monitor 2015-09-15 20:07:33 +02:00
Ilan Steemers a060b3508a Moves bulk iteration to pusher 2015-09-15 14:45:06 +02:00
Ilan Steemers 2bffcf554b Django ORM broker 2015-09-14 13:24:43 +02:00
Ilan Steemers cc178df2b1 #56 fakes setting cpu_affinity on unsupported platforms 2015-09-09 13:25:27 +02:00
Ilan Steemers 1ccfc66254 adds fail method to broker 2015-09-03 16:34:00 +02:00
Ilan Steemers da20ebe734 fixes connection creation on import 2015-08-31 15:15:24 +02:00
Ilan Steemers 0740c90148 adds pluggable brokers
* added redis broker
 * added django_redis broker
 * added task acknowledgement
2015-08-29 18:54:07 +02:00
Ilan Steemers 439c8a2f77 Moves Status to it's own file
This way only qmonitor and qinfo need Curses and you can still run the cluster without it.
2015-08-26 13:11:58 +02:00
Ilan Steemers 3e92fddcdd #50 removes redis connection argument from pusher process 2015-08-24 10:08:43 +02:00