Commit Graph
502 Commits
Author SHA1 Message Date
Ilan Steemers 681375364d Merge pull request #393 from ossobv/sync
Preserve database connection when sync=True
2020-01-17 15:34:46 +01:00
Ilan Steemers 850e6e5452 Merge pull request #399 from theunraveler/ugettext
Replacing `ugettext_` functions with `gettext_` for Django 3
2020-01-17 15:32:27 +01:00
valentinogagliardi c12e6184eb add test for Redis URL 2020-01-12 20:10:06 +01:00
valentinogagliardi fa1082ff96 ability to use a Redis connection URI - closes #402 2020-01-12 13:13:41 +01:00
Jake Bell dc65f5e1de Replacing ugettext_ functions with gettext_ for Django 3 2020-01-07 15:57:37 -06:00
Harm Geerts 66588a28e7 Preserve database connection when sync=True
When tasks run synchronously django-q should only affect the calling
context by running the tasks.
Fixes https://github.com/Koed00/django-q/issues/326
2019-11-27 12:37:31 +01:00
Ilan Steemers c27938ee62 Merge pull request #333 from tremby/fix-timeout-override
Fix timeout override
2019-08-13 14:16:03 +02:00
Martijn Jacobs 924ff928b0 Lock the Schedule objects to ensure tasks are created once
Tested this with PostgreSQL and MySQL
2019-08-12 14:28:26 +02:00
Martijn Jacobs abaa0ba39b Don't call the scheduler twice: respect Conf.SCHEDULER 2019-08-12 14:27:56 +02:00
Ilan Steemers 5ca8b753fd Bump version 2019-08-10 14:43:30 +02:00
Ilan Steemers 7d437ea5cf Merge pull request #353 from maerteijn/fix-mysql-naive-datetime-in-scheduler
Fix issue when using USE_TZ=False with MySQL
2019-08-10 14:16:11 +02:00
Ilan Steemers cfeceb497d Merge pull request #356 from lamby/import-error-issue-331
Inline import to prevent circular imports under some toolchain combinations
2019-08-10 14:14:30 +02:00
Ilan Steemers a72b8171ec Merge pull request #363 from wgordon17/patch-1
Remove and re-add task.id field instead of alter
2019-08-10 14:13:43 +02:00
Ilan Steemers 16fa6fa8d9 Fixes deprecated arrow syntax 2019-08-10 14:03:03 +02:00
Will Gordon c037f405de Remove and replace task.id field, instead of Alter 2019-06-04 20:51:51 -04:00
Chris Lamb 5c8243903f Inline import to prevent circular imports under some toolchain combinations. (Closes: #331) 2019-04-26 09:19:21 +01:00
Martijn Jacobs c0cda97864 Don't save the next_run field as TZ aware when USE_TZ is False
arrow always returns a tz aware datetime, and we don't want this when we explicitly configured django with USE_TZ=False. This causes issues with MySQL.
2019-04-17 15:02:20 +02:00
Janne Rönkkö bca22054df Fix concurrency issue in timeout timer value processing
According to multiprocessing documentation for Value
(https://docs.python.org/3/library/multiprocessing.html#multiprocessing.Value)
reads and writes are protected with lock when the lock argument is True
(the default) or the lock argument is an instance of Lock or RLock. The
documentation states that operations like += are not atomic as that
involves reading and writing.

On the worker side the critical section includes also storing finished task
result because the timeout could happen after the task function has
finished but before the result has been stored and timer.value has been
updated to tell the guard process that the task has been finished.

On the guard side the critical section includes all checks done to see
if the worker has timed out or died and the actual reincarnation function
because the worker could update timer value to -1 (idle) or -2 (recycle)
after the guard has seen timer value 0 (timeout) and is going to terminate
the worker.
2019-01-28 08:39:56 +02:00
Ilan Steemers 44d963b716 Merge pull request #327 from mattaw/master
Modified django_q imports to support Python 3.4 again in cluster.py. …
2019-01-27 18:34:30 +01:00
Ilan Steemers 198ab59555 Merge branch 'master' into fix-timeout-override 2019-01-27 18:30:05 +01:00
Janne Rönkkö 0e2df88d92 Fix async_task timeout parameter handling when cluster timeout is set to None (the default)
The cluster timeout configuration default value None is documented to mean
tasks never timeout out. Also the documentation states that the timeout
can be overridden for individual tasks.

With the old implementation the timeout parameter given to async_task was
not honored if the cluster timeout was set to None.

Fixes: #335
2019-01-27 19:09:22 +02:00
Janne Rönkkö 2650659da9 Allow timeout unit tests to fail properly
The old implementation used count_forever test task that never finishes.
If the timeout implementation does not work in the test, the test never
end and you was required to kill the test runner.
2019-01-27 15:35:17 +02:00
Janne Rönkkö d09e2658be Add test for task finishes before timeout 2019-01-27 15:35:17 +02:00
Janne Rönkkö 888324cf48 Reduce code duplication in timeout unit tests 2019-01-26 20:44:31 +02:00
Bart Nagel 4c2a2f3279 Fix timeout override
Closes https://github.com/Koed00/django-q/issues/332
2019-01-21 16:23:45 -08:00
Matthew Swabey e84be5f33b Modified django_q imports to support Python 3.4 again in cluster.py. Closes #315 2018-12-09 12:28:04 -05:00
Ilan Steemers e68cf52515 Updates version 2018-08-29 19:03:53 +02:00
Ilan Steemers 2ec6994545 Merge pull request #312 from tboulogne/master
Add locale directory with fr translation
2018-08-15 20:02:23 +02:00
Ilan Steemers 4076795dc3 truncate error description in admin
Also removes old conditional imports
2018-08-13 18:50:35 +02:00
Ilan Steemers b5a01a9e93 Removes old rollbar support - relies on the pluggable error reporters now 2018-08-10 13:03:58 +02:00
Thierry BOULOGNE e083288af8 cleaning 2018-08-05 19:23:32 +02:00
Thierry BOULOGNE dfe60151a1 debug PO 2018-08-05 19:16:15 +02:00
Thierry BOULOGNE 881b34d1d6 update po header 2018-08-05 18:50:54 +02:00
Thierry BOULOGNE 0c8958067f fix language code 2018-08-05 18:34:53 +02:00
Thierry BOULOGNE 5dec66b960 update po 2018-08-05 18:29:07 +02:00
Thierry BOULOGNE bc223eb30a remove en 2018-08-05 18:24:56 +02:00
Thierry BOULOGNE 9d3f0d534e Add fr and en Locale 2018-08-05 16:41:07 +02:00
Ilan Steemers e0824802ca Use isinstance instead of typeof 2018-08-05 15:12:18 +02:00
Ilan Steemers 3116e97f9b Fixes overrides 2018-08-05 15:11:43 +02:00
Ilan Steemers 15f8079315 Removes root imports 2018-08-05 14:21:41 +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 83d90664fb Frees resources on sync run - @abompard 2018-08-05 11:12:14 +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 6bfb6b6e6d 0.9.4 2018-03-13 18:37:40 +01:00
ilan e1d1f0f099 Fixes relative imports 2018-03-13 18:32:49 +01:00
ilan 7c6c318860 0.9.3 2018-03-13 17:43:04 +01:00
ilan 7657bba7f9 Merge remote-tracking branch 'origin/master' 2018-03-13 15:25:12 +01: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