1533 Commits (d1528d776de9905fabb51bccaa731441e7b41f67)
 

Author SHA1 Message Date
Selwin Ong d1528d776d
Release scheduler lock when running in burst mode (#1374)
* Fixed an issue where scheduler lock is not release when running worker in burst mode

* Remove unused import
4 years ago
Selwin Ong b50f1e2121
Redis does not accept `parser_class` argument (#1373) 4 years ago
Chris de Graaf 5988889e57
Propagate logging settings from worker to scheduler (#1366) 4 years ago
Ruslan Mullakhmetov 676ec9b0ea
tests: updated github worklow for tests to use requirements.txt and d… (#1364)
* tests: updated github worklow for tests to use requirements.txt and dev-requirements.txt

* build: updated dev-requirements.txt

Co-authored-by: Ruslan Mullakhmetov <ruslan@twentythree.net>
4 years ago
Ruslan Mullakhmetov ed264f08bb
feat: added job heartbeat to track whether job is actually executing (#1349)
* feat: added job heartbeat to track whether job is actually executing

heartbeat might be needed in cases when worker was hardkilled or the whole VM/docker was forcibly rebooted.

* fixed tests

* fixed test coverage issue

* chore: renamed job.heartbeat stuff according to review feedback

* chore: pipelined worker heartbeat and job heartbeat

* docs: documented job.heartbeat property

* fixes after review

* docs: updated last_heartbeat description

* chore: review

Co-authored-by: Ruslan Mullakhmetov <ruslan@twentythree.net>
4 years ago
Selwin Ong a721db34b1
Workers can listen to external commands via pubsub (#1363)
* Added a way to send shutdown command via pubsub

* Added kill-horse command

* Added kill horse command

* Added send_kill_horse_command() and send_shutdown_command()

* Document worker commands
4 years ago
Ruslan Mullakhmetov 0e65bab10b
tests: added ability to run tests in Docker (#1361)
* tests: added ability to run tests in Docker

useful to run full test suit on Mac

* tests: minor improvement in dockerfile for tests

* tests: typo in Dockerfile

* tests: updated dev requirements

Co-authored-by: Ruslan Mullakhmetov <ruslan@twentythree.net>
4 years ago
Selwin Ong f5ce159b60 Remove alpha warning from scheduler docs 4 years ago
Selwin Ong df14acaf02
Increase scheduler lock TTL to 60 (#1362) 4 years ago
Nikita Romaniuk 2da957a68d
scheduler: now operates with chunks of jobs (#1355)
* scheduler: now operates with chunks of jobs

* scheduler: set default chunk_size for ScheduledJobRegistry.get_jobs_to_schedule

* scheduler: fixed missing indent

* scheduler: added test for get_jobs_to_schedule() with chunk_size parameter

* scheduler: fixed test for passing python 3.5 (no f-strings)

* scheduler: fixed chunk_size in test make it lighter to run
4 years ago
Ruslan Mullakhmetov 9adcd7e50c
feat: avoided "zombie" processes after killing work horse (#1348)
* feat: avoided "zombie" processes after killing work horse by setting work horse process group and killing this group

* fixed tests

* tests: added test to check that all workhorse subprocesses are killed

* tests: updated guthub run tests dependencies since they are not using (dev-)requirements.txt

Co-authored-by: Ruslan Mullakhmetov <ruslan@twentythree.net>
4 years ago
Orkhan 55dce19a95
Fix #1340 (#1341)
* docker folder along with Dockerfile has been added

* fix #1340

Co-authored-by: orkhan.mamedov <orkhan.mamedov@sravni.ru>
4 years ago
Qiming Sun 4e4afefd18
Add entry ssl_ca_certs in worker config settings (#1347) 4 years ago
Vladimir Ulupov 237e69123a
pass retry param to enqueue_at func (#1343) 4 years ago
Selwin Ong a31d37f1ea Exclude tests directory from wheel builds 4 years ago
Selwin Ong e6f153ee86 Bump version to 1.5.2 4 years ago
Selwin Ong 01d71c8984
Fixes an issue where retried jobs should not be put in FailedJobRegistry (#1336) 4 years ago
Evgeni Golov 99f7dc8722
include requirements.txt in sdist (#1335)
Fixes: #1328
4 years ago
Ahmed Elmaghallawy 0779605173
fix deprecated Iterable import (#1329) 4 years ago
maces 48f5a68013
fixed minor import error in jobs docs (#1334) 4 years ago
Sergei Zherevchuk 56e756f512
fix(scheduler): correctly restore ssl connection after forking (#1327)
* fix(scheduler): restore ssl connection after forking

* fix(scheduler): custom redis client support
4 years ago
Selwin Ong 08379fc571
Codecov (#1326)
* Try codecov

* Modify codecov steps

* Strip out unused actions variables

* Remove coverage.yml

* Renamed test.yml to workflow.yml

* Minor styling fix
4 years ago
Selwin Ong a09a2ab3b4 Merge branch 'master' of github.com:rq/rq 4 years ago
Selwin Ong 20248cf268 Bump version to 1.5.1 4 years ago
Selwin Ong 6028a63607
Restores compatibility with fakeredis (#1324) 4 years ago
Selwin Ong f0afcd3cb3
Create coverage.yml 4 years ago
Selwin Ong 39fb709c10
get_redis_server_version() should handle 4 digit version numbers (#1322) 4 years ago
nerok 7bf100ebe7
Allow retries to be set through decorator (#1319)
Co-authored-by: Didrik Koren <didrik.koren@uninett.no>
4 years ago
Ruslan Mullakhmetov c2931b45b6
handled unhandled exceptions in horse (#1303)
* handled unhandled exceptions in horse to prevent a job from being silently dropped without going into FailedRegistry

* changes after review

* made sure that work_horse always terminates in a proper way with tests

* minor refactoring

* fix for failing test

* fixes for the other tests

- removed exception handling (done in monitor_work_horse)
- adjusted some tests for the checks that are not relevant anymore

* review suggested changes

* cleanup

Co-authored-by: Ruslan Mullakhmetov <ruslan@twentythree.net>
4 years ago
Selwin Ong 57f286eac4 Minor doc fix 4 years ago
Selwin Ong 265e4b76ab
log messages < error is now output to stdout instead of stderr (#1312) 4 years ago
Aaron Tainter 5cee02d83f
Use correct logger name for scheduler and lower level for heartbeat logs (#1311) 4 years ago
Selwin Ong 167ab96070 Slightly tweaked docs CSS 4 years ago
Selwin Ong dff7a09a1d Fixed Github Pages build 4 years ago
Selwin Ong f3c86c02c6 Bump version to 1.5.0 4 years ago
Zhicheng Cai a62b762200
Update index.md (#1306) 4 years ago
Selwin Ong 49b156ecc7
Job retry feature. Docs WIP (#1299)
* Initial implementation of Retry class

* Fixes job.refresh() under Python 3.5

* Remove the use of text_type in job.py

* Retry can be scheduled

* monitor_work_horse() should call handle_job_failure() with queue argument.

* Flake8 fixes

* Added docs for job retries
4 years ago
David Murray 8a0d9f91ff
Fix incorrect worker timeout calculation in SimpleWorker.execute_job (#1304)
In our systems, this bug seemed the be the cause of the disappearing workers: worker keys would get a very small TTL in Redis and would eventually expire, thus mysteriously "disappearing" from dashboards.
4 years ago
wevsty 4e1eb97056
Split kill_house() fix issues #1234 (#1300)
* Split kill_house() fix issues #1234

Details View issues #1234

* Removing the catch finally

* rename wait_horse() to wait_for_horse()

* rename wait_horse() to wait_for_horse()

* update test_handle_shutdown_request()

Change test_handle_shutdown_request() exitcode assert

* Restore kill_horse() output

* optimization wait_for_horse()
5 years ago
Selwin Ong 5d199df85d
Fix scheduler on Python 3.8 (#1302)
* Fix scheduler on Python 3.8

* Use Python 3.8.3 for test
5 years ago
Paul Spooren 361db4aa83
Add redis_server_version to worker/job/queue (#1286)
The variable contains the server version and allows to determine
available features. This is relevant for API changes like HSET mappings
in version 4.0.0 or LPOS in version 6.0.6.

To keep the number of connection.info() calls low, the information is
*cached* once determined, as a server version unlikely changes while
keeping the connection up.

Signed-off-by: Paul Spooren <mail@aparcar.org>
5 years ago
mbarkhau 3902962aac
Python 2.7 supported dropped in 1.4.0 (CHANGES.md) (#1295)
With revision 02eb983e90 the `python_requires` was set to `3.4`
5 years ago
Paul Spooren 2775185374
CI: Only test redis-py 3.5.0 (#1294)
Only test on major versions to reduce number of tests.

Signed-off-by: Paul Spooren <mail@aparcar.org>
5 years ago
Paul Spooren 8904757d7e
Replace travis with GitHub action (#1290)
* CI: replace travis with GitHub action matrix

The GitHub action runs the same tests as travis however using a more
complex matrix:

Python versions: 3.5, 3.6, 3.7, 3.8
Python 3.4 is dropped by redis-py, therefore not required in the tests.

Redis versions: 3, 4, 5, 6
The different Redis versions offer different features and this allows
checks for compatibility.

redis-py versions: 3.5.0, 3.5.3
3.5.0 is the oldest supported version, 3.5.3 is the latest upstream
verison

Signed-off-by: Paul Spooren <mail@aparcar.org>

* CI: Add flake8 lint action

This actions runs `flake8` and shows style problems of the code. It uses
th GitHub default options which handle most problems as warnings. These
rules could become slowly more strict.

Signed-off-by: Paul Spooren <mail@aparcar.org>
5 years ago
Paul Spooren 8432a916bd
setup: Set min Python version to 3.5 (#1291)
As `redis-py` in version 3.5.0 is now required, whoch only support
Python 3.5+, we should remove Python 3.4 from the supported Python
versions as well.

Signed-off-by: Paul Spooren <mail@aparcar.org>
5 years ago
Paul Spooren 0b55981631
Improve requirements handling (#1287)
* setup: read requirements.txt for dependencies

This makes it easier to keep required packages in sync.

Signed-off-by: Paul Spooren <mail@aparcar.org>

* requirements: Update to click 5.0 and redis 3.5.0

Click 5.0 was already required by the `setup.py` and is not brought in
sync. Redis Python library 3.5.0 introduces the `HSET` command with
mapping support which replaces the previous `hmset`. By lifting the
minimal required version to 3.5.0 we can remove the combat function if
Redis server 4.0 is guaranteed.

Signed-off-by: Paul Spooren <mail@aparcar.org>

* ci: remove Python3.4 testing

`redis-py` 3.5.0 does no longer support Python 3.4, so drop it in CI.

Signed-off-by: Paul Spooren <mail@aparcar.org>
5 years ago
Konstantin Schubert b334a00f07
Fix comment in registry.py (#1285) 5 years ago
Selwin Ong c3a6b537de Bump version in version.py 5 years ago
Selwin Ong 819c61be9b Bump version to 1.4.3 5 years ago
Selwin Ong 34eec5fee5
worker.register_birth() should set a slightly longer worker key TTL (#1284) 5 years ago