首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用终极cron调度Cron作业

使用终极cron调度Cron作业
EN

Drupal用户
提问于 2019-01-27 20:53:12
回答 2查看 4K关注 0票数 1

在我的一个模块中,我想创建两个不同的cron作业来处理两个不同的过程。我所做的就是使用终极Cron模块,并通过实现cron来安排我的cron作业。

我的问题是,在/admin/config/system/cron/作业中,只会出现来自hook_cron的默认值,而不会显示来自hook_cronapi的默认值。这就是我写的。

代码语言:javascript
复制
/**
 * Implements hook_cron().
 */
function MODULENAME_cron() {
  //code
}

/**
 * Implements hook_cronapi().
 */
function MODULENAME_cronapi() {
  $items = array();

  $items['generate_excel_files'] = array(
    'title' => 'Table Excel Generate',
    'callback' => 'generate_excel_files_callback',
    'scheduler' => array(
      'name' => 'crontab',
      'crontab' => array(
        'rules' => array('0 3 * * *'),
      ),
    ),
  );

  return $items;
}

function generate_excel_files_callback(){
  //code
}
EN

回答 2

Drupal用户

回答已采纳

发布于 2019-02-10 01:32:14

显然,cron在这个时候不适用于Drupal 8。为了解决我的问题,我所做的就是创建一个新模块,只处理我想要的cron作业。然后,从终极Cron的UI中,我会添加规则来安排我的cron任务。

代码语言:javascript
复制
use Drupal\MODULENAME\Controller\ClassName;

/**
 * Implements hook_cron().
 */
function NEW_MODULENAME_cron() {
 generate_excel_files_callback();
}

function generate_excel_files_callback(){
 $obj = new ClassName();
 $obj->generateXLSX();
}
票数 2
EN

Drupal用户

发布于 2021-08-04 01:55:15

回答:“但是cron没有按预定时间运行。”据我所知,只有在发送请求时,cron才会运行。所以任何对任何页面的请求。如果没有从服务器接收到请求,则无论您设置的时间如何,cron都不会运行。如果收到请求,它将检查自上次cron运行以来过期的时间,并将其与您的设置值进行比较,以确定是否需要再次运行。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/275775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档