Commit Graph

45 Commits

Author SHA1 Message Date
Louis Chemineau
8ad2f34045 Remove job from oc_jobs when the file is not findable
When an application is disabled, or when a background jobs is removed by the app developer, then the job won't be found. In those cases, it makes sense to remove those jobs from oc_job.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-03 10:39:38 +02:00
Marcel Klehr
524d053eb2 JobList: add debug log when hasReservedJob query fails
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-24 17:16:32 +02:00
Marcel Klehr
5a7f023bfc JobList#hasReservedJobs: Close cursor
so Joas doesn't die

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-23 12:36:12 +02:00
Marcel Klehr
5608b50778 Fix BackgroundJob tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-23 12:36:12 +02:00
Marcel Klehr
6f9a3218d0 Update lib/private/BackgroundJob/JobList.php
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-23 12:36:12 +02:00
Marcel Klehr
1296f3612e test(BackgroundJobs): Add tests for allowParallelRuns and hasReservedJobs
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-23 12:36:12 +02:00
Marcel Klehr
c01c516323 feat(BackgroundJobs): Allow preventing parallel runs for a job class
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-04-23 12:36:12 +02:00
Côme Chilliet
d74044f634 Fix API breakage by using a new method instead
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-12 17:18:59 +01:00
Côme Chilliet
e74f464662 Remove deprecated method getAll instead of breaking API on deprecated method
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-12 17:13:08 +01:00
Côme Chilliet
679682c186 Use a Generator for job list to fix background-job:list command
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-10 18:20:31 +01:00
Côme Chilliet
2e921f8b3d Fix typing in IJobList
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-07-11 09:46:23 +00:00
Côme Chilliet
868d748dbf Code cleaning of Background/ListCommand
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-07-11 09:46:23 +00:00
Côme Chilliet
3d01179907 Add command to list jobs
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-07-11 09:46:23 +00:00
Côme Chilliet
0b7779b6ff Clean up JobList class
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-07-11 09:46:22 +00:00
Christoph Wurst
b17c4a6072 Check background job type
It is assumed that a job class loaded from the jobs table is an IJob,
but due to programming error the job might be of another type. Then the
setters will most likely fail.

This patch adds an interface type check so only correct jobs are used,
anything else is ignored.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-05-31 15:24:30 +00:00
Kirill Popov
0b27b9e658 Get not only time-sensitive next job from list but any
Before the change webcron used to select
**only** time-sensitive tasks.

Signed-off-by: Kirill Popov <kirill.s.popov@gmail.com>
2022-04-24 21:55:53 +03:00
Carl Schwan
c870bd1968 Do chuncked job deletion
This is helpful in cases where we are deleting tons jobs at the same
time in a gallera cluster. This doesn't happen often but this can create
issues.

Test plan:

1. Use https://github.com/nextcloud/quota_warning/pull/88
2. Change max to 1
3. Enabled/Disable quota_warning app and see jobs getting sucessfully
   added and removed

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-03-17 21:41:58 +01:00
Joas Schilling
abcf45e336 Also use hashed/indexed column on delete
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-03-02 09:23:16 +01:00
Joas Schilling
b765f79368 Allow apps to specify if their background job can be delayed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-02-07 13:54:54 +01:00
Julius Härtl
99b2cf8339 Add hashed attribute column for indexed job existence check
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-18 14:01:24 +01:00
Carl Schwan
6312c0df69 Check style update
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-13 00:19:07 +01:00
Julius Härtl
b30193ed14 Reset job disabling timer on adding the job again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-01-03 12:12:02 +01:00
Joas Schilling
7239b3d560 Bump since version
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-10-14 09:57:16 +02:00
Joas Schilling
9cd9f4b4bc Move queries to the joblist
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-10-14 09:57:16 +02:00
John Molakvoæ (skjnldsv)
215aef3cbd Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Christoph Wurst
d89a75be0b Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
Morris Jobke
99c9423766 Remove @suppress SqlInjectionChecker
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-09-16 15:53:56 +02:00
Morris Jobke
16d83ab30a Remove getLastJob from IJobList
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-08-13 21:50:06 +02:00
Christoph Wurst
1a9330cd69 Update the license headers for Nextcloud 19
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-31 14:52:54 +02:00
Georg Ehrke
eda599973d JobList: Typecast last_run to integer
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
2020-01-30 12:01:02 +01:00
Christoph Wurst
5bf3d1bb38 Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Roeland Jago Douma
68748d4f85 Some php-cs fixes
* Order the imports
* No leading slash on imports
* Empty line before namespace
* One line per import
* Empty after imports
* Emmpty line at bottom of file

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-11-22 20:52:10 +01:00
Christoph Wurst
d5927e4d01 Fix integer background job id type error
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-01-15 14:36:03 +01:00
Morris Jobke
f5a1f4bc1b Revert "Wait for cron to finish before running upgrade command"
This reverts commit 18e9631810.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-11-01 15:23:40 +01:00
Morris Jobke
79801ad263 Suppress potential SQL injection warning as they are false positives
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-07-09 14:55:47 +02:00
Morris Jobke
a1a29d14c8 Unlock failed cron jobs and set a high "last_checked" value to avoid continous re-check
* fixes issue where cronjobs of a not-loaded app are marked as "still running" because there is a "reserved_at" value stored
* fixed #9992

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-07-09 14:51:02 +02:00
Morris Jobke
18e9631810 Wait for cron to finish before running upgrade command
* fixes #9562

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-06-19 14:22:45 +02:00
Morris Jobke
0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Lukas Reschke
3d2600b039 Add Phan plugin to check for SQL injections
This adds a phan plugin which checks for SQL injections on code using our QueryBuilder, while it isn't perfect it should already catch most potential issues.

As always, static analysis will sometimes have false positives and this is also here the case. So in some cases the analyzer just doesn't know if something is potential user input or not, thus I had to add some `@suppress SqlInjectionChecker` in front of those potential injections.

The Phan plugin hasn't the most awesome code but it works and I also added a file with test cases.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2017-07-20 22:48:13 +02:00
Noveen Sachdeva
1b1f403a5d Add duration of last job execution to the table 2017-04-25 17:39:58 +02:00
Jörn Friedrich Dreyer
c993c363e0 make JobList::next() lock free
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-07 13:07:09 -05:00
Joas Schilling
0215b004da Update with robin 2016-07-21 18:13:58 +02:00
Joas Schilling
ba87db3fcc Fix others 2016-07-21 18:13:57 +02:00
Joas Schilling
d0a2fa0506 Lock jobs while executing them, to allow multiple executors to run in parallel 2016-05-21 01:59:25 +02:00
Roeland Jago Douma
6b5db081a5 Move \OC\BackgroundJob to PSR-4 2016-04-26 08:47:26 +02:00