Php Cron是运行计划任务的唯一方法吗?

Php Cron是运行计划任务的唯一方法吗?,php,python,ruby-on-rails,ruby,django,Php,Python,Ruby On Rails,Ruby,Django,cron(或其衍生物)是运行计划的编程任务的唯一方法吗?例如: 在X前3天向客户的信用卡收费 从时间x起6小时内发送电子邮件 每小时执行一次xyz命令 有没有好的资源/书籍可以教你如何以干净的方式实现这些特性(python、ruby(或ROR)、python) 我当前的脏方法是让CronTab中的包装器脚本每分钟运行一次,以检查是否应该运行某些任务。我真的不喜欢这个。我更喜欢一种可以通过编程实现预定任务的方法 如果您希望在将来的指定时间安排一次性作业,则可能更合适。不,您可以使用linux设置作

cron(或其衍生物)是运行计划的编程任务的唯一方法吗?例如:

  • 在X前3天向客户的信用卡收费
  • 从时间x起6小时内发送电子邮件
  • 每小时执行一次xyz命令
  • 有没有好的资源/书籍可以教你如何以干净的方式实现这些特性(python、ruby(或ROR)、python)


    我当前的脏方法是让CronTab中的包装器脚本每分钟运行一次,以检查是否应该运行某些任务。我真的不喜欢这个。我更喜欢一种可以通过编程实现预定任务的方法

    如果您希望在将来的指定时间安排一次性作业,则可能更合适。

    不,您可以使用linux设置作业计划,就像我们所做的那样

    if (strtoupper(substr(php_uname(), 0, 3)) === 'WIN') {
           // This is for Windows
           $cmd = PHP_PATH . " " . PATH_CLASS . "/Cron/somecron.php";
           pclose(popen("start /B ". $cmd, "r"));
           unset($_SESSION['something']);
       } else {
          //This is for Linux
          exec("php " . PATH_CLASS . "/Cron/somecron.php > /dev/null &");
          unset($_SESSION['something']);
       }
    
    对于python,您可以使用

    例如,每小时执行一次命令如下:

    from celery.task.schedules import crontab
    from celery.decorators import periodic_task
    
    @periodic_task(run_every=crontab(hour=3))
    def every_three_hour():
        print("This runs every three hour")
    
    从现在起三个小时后的处决将是:

    from datetime import datetime
    
    YourTask.apply_async(args=[some, args, here], eta=datetime.now()+datetime.timedelta(hours=3))
    

    我建议使用Ruby/ROR的
    延迟作业
    ,更多信息


    非常容易设置,而且最重要的是-活动项目,这是我所知道的大多数Rubeest的首选武器:)

    如果您使用的是数据库,它可能支持
    事件
    RoR gem:谢谢您的建议。Rufus调度程序有多强大?我想说,请查看和以查找任何投诉。需要注意的一件事是,如果RoR未运行,您的任务将不会运行……还有: