File tree Expand file tree Collapse file tree
lib/private/BackgroundJob Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -86,6 +86,25 @@ public function add($job, $argument = null) {
8686 'last_checked ' => $ query ->createNamedParameter ($ this ->timeFactory ->getTime (), IQueryBuilder::PARAM_INT ),
8787 ]);
8888 $ query ->execute ();
89+ } else {
90+ if ($ job instanceof IJob) {
91+ $ class = get_class ($ job );
92+ } else {
93+ $ class = $ job ;
94+ }
95+
96+ $ argument = json_encode ($ argument );
97+ if (strlen ($ argument ) > 4000 ) {
98+ throw new \InvalidArgumentException ('Background job arguments can \'t exceed 4000 characters (json encoded) ' );
99+ }
100+
101+ $ reset = $ this ->connection ->getQueryBuilder ();
102+ $ reset ->update ('jobs ' )
103+ ->set ('reserved_at ' , $ reset ->expr ()->literal (0 , IQueryBuilder::PARAM_INT ))
104+ ->set ('last_checked ' , $ reset ->createNamedParameter ($ this ->timeFactory ->getTime (), IQueryBuilder::PARAM_INT ))
105+ ->where ($ reset ->expr ()->eq ('class ' , $ reset ->createNamedParameter ($ class )))
106+ ->andWhere ($ reset ->expr ()->eq ('argument ' , $ reset ->createNamedParameter ($ argument )));
107+ $ reset ->execute ();
89108 }
90109 }
91110
You can’t perform that action at this time.
0 commit comments