使用easyswoole 做定时任务crontab 任务不执行 getTaskName方法太长 不执行?

19 篇文章 0 订阅

在使用easyswoole 需要使用到一些定时任务做自动化处理 代码如下:

在EasySwooleEvent.php中 注册相关的定时任务 伪代码如下: 

use EasySwoole\EasySwoole\Crontab\Crontab;
use App\Crontab\RuleLocationToExpire;       //定时任务的对象
public static function mainServerCreate(EventRegister $register){
     //计划任务
     Crontab::getInstance()->addTask(RuleLocationToExpire::class);
}

Crontab::getInstance()->addTask(RuleLocationToExpire::class);

 

然后创建所需要的定时任务对象  /App/Crontab/RuleLocationToExpire.php  

namespace App\Crontab;
use EasySwoole\EasySwoole\Crontab\AbstractCronTask;
class RuleLocationToExpire extends AbstractCronTask {
    public static function getRule(): string
    {
        // TODO: Implement getRule() method.
        return '*/1 * * * *';
    }

    
    
    public static function getTaskName(): string{
        // TODO: Implement getTaskName() method.
        // 定时任务名称
        return "这是任务名称";
    }

    static function run(\swoole_server $server, int $taskId, int $fromWorkerId,$flags=null)
    {
        echo 'liupeng14';
        file_put_contents('f.txt','33'.PHP_EOL,FILE_APPEND);
    }
}

当前这个代码是可以每分钟进行执行的  重点来了:当我将getTaskName() 任务名称这个定义的很长  就不执行了 

public static function getTaskName(): string{
        // TODO: Implement getTaskName() method.
        // 定时任务名称  每个1分钟去处理规则与点位绑定任务是否过期
        return "name name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name namename name name name name namename name name";
      
    }

不知道是个什么坑???欢迎同行一起交流   

官方的文档定义如下  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以检查以下几个方面来解决 crontab 定时任务执行的问题: 1. 检查 crontab 语法:确保你的 crontab 表达式正确无误。可以使用 `crontab -e` 命令编辑定时任务,并使用 `crontab -l` 命令查看当前的定时任务列表。 2. 确认 crontab 服务正在运行:使用 `systemctl status cron` 命令检查 crontab 服务是否正常运行。如果没有运行,可以使用 `systemctl start cron` 命令启动服务。 3. 检查定时任务的日志:定时任务执行日志通常会记录在 `/var/log/syslog` 或者 `/var/log/cron.log` 文件中。你可以查看这些日志文件,查找是否有任何错误或警告信息。 4. 确保命令可执行:在 crontab 中指定的命令或脚本需要有执行权限,并且能够在终端中正常执行。可以尝试在终端中手动执行命令,看是否能够正常运行。 5. 设置环境变量:如果你的定时任务需要使用特定的环境变量,可以在 crontab 文件中设置它们。例如,在命令前面添加 `PATH=/usr/local/bin` 可以设置 PATH 环境变量。 6. 检查工作目录:在 crontab 中指定的命令或脚本的工作目录可能与你预期的不同。你可以在 crontab使用 `cd` 命令切换到正确的工作目录。 希望这些提示能帮助你找到问题所在并解决定时任务执行的问题。如果问题仍然存在,请提供更多的细节和相关的日志信息,以便进一步帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值