/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
|
|
64 | 64 | minhour = 0; |
65 | 65 | if (maxhour > 23) |
66 | 66 | maxhour = 23; |
67 | | if (minhour > maxhour) |
68 | | { |
69 | | VERBOSE(VB_GENERAL, |
70 | | "Housekeeping thread will not run: supplied time range is empty"); |
71 | | } |
72 | 67 | |
73 | 68 | MSqlQuery result(MSqlQuery::InitCon()); |
74 | 69 | if (result.isConnected()) |
… |
… |
|
86 | 81 | lastrun.toString(QString("d")).toInt())) |
87 | 82 | { |
88 | 83 | int hour = now.toString(QString("h")).toInt(); |
89 | | if ((hour >= minhour) && (hour <= maxhour)) |
| 84 | |
| 85 | if (minhour > maxhour) |
90 | 86 | { |
91 | | int minute = now.toString(QString("m")).toInt(); |
92 | | if ((hour == maxhour && minute > 30) || |
93 | | ((random()%(((maxhour-hour)*12+(60-minute)/5 - 6) + 1)) == 0)) |
94 | | runOK = true; |
| 87 | if((hour <= maxhour) || |
| 88 | (hour > maxhour && minhour <= hour)) |
| 89 | { |
| 90 | int minute = now.toString(QString("m")).toInt(); |
| 91 | if ((hour == maxhour && minute > 30) || |
| 92 | ((random()%(((maxhour-hour)*12+(60-minute)/5 - 6) + 1)) == 0)) |
| 93 | runOK = true; |
| 94 | } |
95 | 95 | } |
| 96 | else |
| 97 | { |
| 98 | if ((hour >= minhour) && (hour <= maxhour)) |
| 99 | { |
| 100 | int minute = now.toString(QString("m")).toInt(); |
| 101 | if ((hour == maxhour && minute > 30) || |
| 102 | ((random()%(((maxhour-hour)*12+(60-minute)/5 - 6) + 1)) == 0)) |
| 103 | runOK = true; |
| 104 | } |
| 105 | } |
96 | 106 | } |
97 | 107 | } |
98 | 108 | else |
… |
… |
|
223 | 233 | QDateTime now = QDateTime::currentDateTime(); |
224 | 234 | int hour = now.toString(QString("h")).toInt(); |
225 | 235 | |
226 | | if ((nextRun < now) && |
227 | | (lastRun.secsTo(now) > (3 * 60 * 60)) && |
228 | | ((minhr <= hour) && (hour <= maxhr))) |
229 | | runMythFill = true; |
| 236 | //passing midnight in interval |
| 237 | if (minhr > maxhr) |
| 238 | { |
| 239 | if ((nextRun < now) && |
| 240 | (lastRun.secsTo(now) > (3 * 60 * 60)) && |
| 241 | ((hour <= maxhr) || |
| 242 | ((hour > maxhr) && (minhr <= hour)))) |
| 243 | runMythFill = true; |
| 244 | } |
| 245 | else |
| 246 | { |
| 247 | if ((nextRun < now) && |
| 248 | (lastRun.secsTo(now) > (3 * 60 * 60)) && |
| 249 | ((minhr <= hour) && (hour <= maxhr))) |
| 250 | runMythFill = true; |
| 251 | } |
230 | 252 | } |
231 | 253 | else if (wantToRun("MythFillDB", period, minhr, maxhr)) |
232 | 254 | { |