|
|
@@ -160,33 +160,47 @@ class SystemTimer implements ListenerInterface
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 0 1 2 3 4 5
|
|
|
+ | | | | | |
|
|
|
+ | | | | | +------ day of week (0 - 6) (Sunday=0)
|
|
|
+ | | | | +------ month (1 - 12)
|
|
|
+ | | | +-------- day of month (1 - 31)
|
|
|
+ | | +---------- hour (0 - 23)
|
|
|
+ | +------------ min (0 - 59)
|
|
|
+ +-------------- sec (0-59)[可省略,如果没有0位,则最小时间粒度是分钟]
|
|
|
+ */
|
|
|
+ /**
|
|
|
+ * 获取定时任务时间表达式
|
|
|
+ * @param $data
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
public function getTimerStr($data): string
|
|
|
{
|
|
|
$timeStr = '';
|
|
|
switch ($data['type']) {
|
|
|
- case 1:
|
|
|
+ case 1:// 每隔几秒
|
|
|
$timeStr = '*/' . $data['second'] . ' * * * * *';
|
|
|
break;
|
|
|
- case 2:
|
|
|
+ case 2:// 每隔几分
|
|
|
$timeStr = '0 */' . $data['minute'] . ' * * * *';
|
|
|
break;
|
|
|
- case 3:
|
|
|
- $timeStr = '0 0 */' . $data['hour'] . ' * * *';
|
|
|
+ case 3:// 每隔几时
|
|
|
+ $timeStr = '0 ' . $data['minute'] . ' */' . $data['hour'] . ' * * *';
|
|
|
break;
|
|
|
- case 4:
|
|
|
- $timeStr = '0 0 0 */' . $data['day'] . ' * *';
|
|
|
+ case 4:// 每隔几日
|
|
|
+ $timeStr = '0 ' . $data['minute'] . ' ' . $data['hour'] . ' */' . $data['day'] . ' * *';
|
|
|
break;
|
|
|
- case 5:
|
|
|
+ case 5:// 每日几时几分几秒
|
|
|
$timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' * * *';
|
|
|
break;
|
|
|
- case 6:
|
|
|
+ case 6:// 每周周几几时几分几秒
|
|
|
$timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' * * ' . ($data['week'] == 7 ? 0 : $data['week']);
|
|
|
break;
|
|
|
- case 7:
|
|
|
+ case 7:// 每月几日几时几分几秒
|
|
|
$timeStr = $data['second'] . ' ' . $data['minute'] . ' ' . $data['hour'] . ' ' . $data['day'] . ' * *';
|
|
|
break;
|
|
|
}
|
|
|
return $timeStr;
|
|
|
}
|
|
|
-}
|
|
|
+}
|