src/Biz/Crontab/SystemCrontabInitializer.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Crontab;
use AppBundle\System;
use Biz\AppLoggerConstant;
use Biz\System\Service\LogService;
use Codeages\Biz\Framework\Scheduler\Service\SchedulerService;
use TiBeN\CrontabManager\CrontabAdapter;
use TiBeN\CrontabManager\CrontabJob;
use TiBeN\CrontabManager\CrontabRepository;
use Topxia\Service\Common\ServiceKernel;
class SystemCrontabInitializer
{
const SOURCE_SYSTEM = 'MAIN';
const MAX_CRONTAB_NUM = 2;
public static function init()
{
self::registerDefaultCrontab();
self::registerDefaultJobs();
}
public static function getCrontabJobCommand()
{
$rootDir = ServiceKernel::instance()->getParameter('kernel.root_dir');
return $rootDir.'/console util:scheduler -v';
}
/**
* @return array of CronJobs
*/
public static function findCrontabJobs()
{
$command = self::getCrontabJobCommand();
$crontabRepository = new CrontabRepository(new CrontabAdapter());
return $crontabRepository->findJobByRegex('/'.str_replace('/', '\/', $command).'/');
}
private static function registerDefaultCrontab()
{
if (System::OS_LINUX === System::getOS() || System::OS_OSX === System::getOS()) {
try {
$crontabRepository = new CrontabRepository(new CrontabAdapter());
$command = self::getCrontabJobCommand();
$crontabJobs = $crontabRepository->findJobByRegex('/'.str_replace('/', '\/', $command).'/');
foreach ($crontabJobs as $crontabJob) {
$crontabRepository->removeJob($crontabJob);
}
for ($i = 0; $i < self::MAX_CRONTAB_NUM; ++$i) {
$crontabJob = self::createCrontabJob();
$crontabRepository->addJob(
$crontabJob
);
}
$crontabRepository->persist();
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。