modify
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
namespace Snowflake\Abstracts;
|
||||
|
||||
|
||||
use Snowflake\Core\Json;
|
||||
use Snowflake\Process\CrontabProcess;
|
||||
use Snowflake\Snowflake;
|
||||
use Exception;
|
||||
|
||||
@@ -16,51 +18,40 @@ class Crontab extends Component
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param \Snowflake\Crontab $crontab
|
||||
* @param $executeTime
|
||||
* @throws Exception
|
||||
*/
|
||||
public function dispatch(\Snowflake\Crontab $crontab, int $executeTime)
|
||||
{
|
||||
$redis = Snowflake::app()->getRedis();
|
||||
|
||||
$redis->zAdd('system:crontab', (string)$executeTime, serialize($crontab));
|
||||
}
|
||||
/**
|
||||
* @param \Snowflake\Crontab $crontab
|
||||
* @param $executeTime
|
||||
* @throws Exception
|
||||
*/
|
||||
public function dispatch(\Snowflake\Crontab $crontab)
|
||||
{
|
||||
/** @var CrontabProcess $redis */
|
||||
$redis = Snowflake::app()->get(CrontabProcess::class);
|
||||
$redis->write(serialize($crontab));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @throws Exception
|
||||
*/
|
||||
public function clear(string $name)
|
||||
{
|
||||
$redis = Snowflake::app()->getRedis();
|
||||
|
||||
$data = $redis->zRevRange('system:crontab', 0, -1);
|
||||
if (empty($data)) {
|
||||
return;
|
||||
}
|
||||
foreach ($data as $datum) {
|
||||
/** @var \Snowflake\Crontab $crontab */
|
||||
$crontab = unserialize($datum);
|
||||
if ($crontab->getName() == $name) {
|
||||
$redis->zRem('system:crontab', $datum);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* @param string $name
|
||||
* @throws Exception
|
||||
*/
|
||||
public function clear(string $name)
|
||||
{
|
||||
/** @var CrontabProcess $redis */
|
||||
$redis = Snowflake::app()->get(CrontabProcess::class);
|
||||
$redis->write(Json::encode(['action' => 'clear', 'name' => $name]));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function clearAll()
|
||||
{
|
||||
$redis = Snowflake::app()->getRedis();
|
||||
|
||||
$redis->del('system:crontab');
|
||||
}
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public function clearAll()
|
||||
{
|
||||
/** @var CrontabProcess $redis */
|
||||
$redis = Snowflake::app()->get(CrontabProcess::class);
|
||||
$redis->write(Json::encode(['action' => 'clearAll']));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user