@@ -36,8 +36,8 @@ class RetryJob extends Job {
36
36
private $ jobList ;
37
37
/** @var string */
38
38
private $ lookupServer ;
39
- /** @var int how much time should be between two tries (10 minutes) */
40
- private $ interval = 600 ;
39
+ /** @var int how much time should be between two, will be increased for each retry */
40
+ private $ interval = 100 ;
41
41
42
42
/**
43
43
* @param IClientService $clientService
@@ -75,7 +75,7 @@ public function execute($jobList, ILogger $logger = null) {
75
75
}
76
76
77
77
protected function run ($ argument ) {
78
- if ($ argument ['retryNo ' ] === 5 || empty ( $ this -> lookupServer )) {
78
+ if ($ this -> killBackgroundJob (( int ) $ argument ['retryNo ' ])) {
79
79
return ;
80
80
}
81
81
@@ -108,6 +108,27 @@ protected function run($argument) {
108
108
* @return bool
109
109
*/
110
110
protected function shouldRun ($ argument ) {
111
- return !isset ($ argument ['lastRun ' ]) || ((time () - $ argument ['lastRun ' ]) > $ this ->interval );
111
+ $ retryNo = (int )$ argument ['retryNo ' ];
112
+ $ delay = $ this ->interval * 6 ** $ retryNo ;
113
+ return !isset ($ argument ['lastRun ' ]) || ((time () - $ argument ['lastRun ' ]) > $ delay );
114
+ }
115
+
116
+ /**
117
+ * check if we should kill the background job
118
+ *
119
+ * The lookup server should no longer be contacted if:
120
+ *
121
+ * - max retries are reached (set to 5)
122
+ * - lookup server was disabled by the admin
123
+ * - no valid lookup server URL given
124
+ *
125
+ * @param int $retryCount
126
+ * @return bool
127
+ */
128
+ protected function killBackgroundJob ($ retryCount ) {
129
+ $ maxTriesReached = $ retryCount >= 5 ;
130
+ $ lookupServerDisabled = $ this ->config ->getAppValue ('files_sharing ' , 'lookupServerUploadEnabled ' , 'yes ' ) !== 'yes ' ;
131
+
132
+ return $ maxTriesReached || $ lookupServerDisabled || empty ($ this ->lookupServer );
112
133
}
113
134
}
0 commit comments