ฉันจะได้รับการประทับเวลา (วันที่) นับตั้งแต่ cron ล่าสุดได้อย่างไร


11

ฉันกำลังสร้างโมดูล แต่ติดอยู่ .. ฉันต้องการเวลาประทับจาก cron ก่อนหน้าขณะที่ฉันทำงานงาน hook_cron เพื่อให้ฉันสามารถตรวจสอบว่าโหนดใดเป็นโหนดใหม่และส่งอีเมลเหล่านั้น

ดังนั้นฉันต้องการประทับวันที่ / เวลาจาก cron ที่วิ่งครั้งสุดท้าย แต่จะไปถึงที่นั่นได้อย่างไร?

คำตอบ:


19

การประทับเวลา UNIX ของการรัน cron ครั้งล่าสุดสามารถดึงมาได้ด้วย:

variable_get('cron_last');

หากคุณต้องการคุณสามารถจัดการการประทับเวลา UNIX ด้วยฟังก์ชั่นวันที่ของ PHP


3

ฟังก์ชั่น hook_requirement () สามารถช่วยคุณได้

ลองใช้งานได้ที่: http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_requirements/7

ในไฟล์โมดูลของคุณเขียนฟังก์ชั่น hook_requirement ()

function hook_requirements($phase) {
if ($phase == 'runtime') {
    $cron_last = variable_get('cron_last');

    if (is_numeric($cron_last)) {
      $requirements['cron']['value'] = $t('Last run !time ago', array('!time' => format_interval(REQUEST_TIME - $cron_last)));
    }
    else {
      $requirements['cron'] = array(
        'description' => $t('Cron has not run. It appears cron jobs have not been setup on your system. Check the help pages for <a href="@url">configuring cron jobs</a>.', array('@url' => 'http://drupal.org/cron')), 
        'severity' => REQUIREMENT_ERROR, 
        'value' => $t('Never run'),
      );
    }

    $requirements['cron']['description'] .= ' ' . $t('You can <a href="@cron">run cron manually</a>.', array('@cron' => url('admin/reports/status/run-cron')));

    $requirements['cron']['title'] = $t('Cron maintenance tasks');
  }
}

เป็นประโยชน์ แต่ฉันชอบคำตอบของบาร์ตที่ดีกว่าเพราะมันง่ายกว่า +1
FLY

hook_requirements () ถูกเรียกใช้สำหรับเฟส "รันไทม์" จากการเรียกกลับหน้ารายงานสถานะ (cf, api.drupal.org/api/drupal/modules%21system%21system.api.php/ ...... ) ฉันไม่เห็นว่าสิ่งนี้จะช่วยพิจารณาว่าโหนดใดเป็นของใหม่
mpdonadio
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.