From e0a3e00fbb29d7fcbef9babaa686cc1137e7facf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Fri, 19 Mar 2021 18:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- System/Crontab.php | 7 ++++--- System/Process/CrontabProcess.php | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/System/Crontab.php b/System/Crontab.php index d6643327..205118d1 100644 --- a/System/Crontab.php +++ b/System/Crontab.php @@ -18,11 +18,12 @@ class Crontab extends Component /** * @param array|Closure $handler + * @param mixed $params * @param int $tickTime * @param bool $isLoop * @throws Exception */ - public function dispatch(array|Closure $handler, $tickTime = 1, $isLoop = false) + public function dispatch(array|Closure $handler, mixed $params = null, $tickTime = 1, $isLoop = false) { $redis = Snowflake::app()->getRedis(); @@ -32,9 +33,9 @@ class Crontab extends Component $executeTime = time() + $tickTime; - $crontab = ['isLoop' => $isLoop, 'handler' => $handler, 'tick' => $tickTime]; + $crontab = ['isLoop' => $isLoop, 'handler' => $handler, 'tick' => $tickTime, 'params' => $params]; - $redis->sAdd('system:crontab', $executeTime, serialize($crontab)); + $redis->zAdd('system:crontab', $executeTime, serialize($crontab)); } } diff --git a/System/Process/CrontabProcess.php b/System/Process/CrontabProcess.php index c6105d33..6ce6c255 100644 --- a/System/Process/CrontabProcess.php +++ b/System/Process/CrontabProcess.php @@ -51,7 +51,7 @@ class CrontabProcess extends Process $redis->zAdd('system:crontab', 0, time() + $list['tick'], serialize($list)); } try { - call_user_func($list['handler']); + call_user_func($list['handler'], $list['params'] ?? null); } catch (\Throwable $throwable) { $this->application->addError($throwable->getMessage()); }