อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย thatsawan » 06/04/2020 12:23 pm

thatsawan เขียน: 06/04/2020 12:13 pm ลองตั้งค่า เเละเปิดการใช้งานเเล้ว ยังไม่เห็นทำงานนะ
ต้องตั้งค่าเรื่อง time แบบไทยก่อน
หลังจากนั้นต้องค่าให้ระบบทำงานเวลาถัดไป


Extension ตัวอย่างน่าจะมีอะไรผิดพลาดยุ ถึงเวลาทำงาน เข้าหน้า acp ไม่ได้
ข้อผิดพลาดการเข้ารหัสเนื้อหา

ไม่สามารถแสดงหน้าที่คุณกำลังพยายามจะดูเนื่องจากหน้าใช้รูปแบบการบีบอัดที่ไม่ถูกต้องหรือไม่รองรับ

โปรดติดต่อเจ้าของเว็บไซต์เพื่อแจ้งพวกเขาให้ทราบถึงปัญหานี้

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย mindphp » 06/04/2020 12:17 pm

ตั้งแล้ว จะทำงาน เมื่อ มีการโหลดเพจ หลังจากตั้งค่า อาจจะ 3-5 นาที โดยตรงมีการเรียกดูหน้าบอร์ด หน้าใดหน้าหนึ่งก่อน

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย thatsawan » 06/04/2020 12:13 pm

ลองตั้งค่า เเละเปิดการใช้งานเเล้ว ยังไม่เห็นทำงานนะ

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย mindphp » 06/04/2020 11:42 am

ตัว autodbbackup เองทำงานหรือเปล่าครับ

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย Ittichai_chupol » 04/04/2020 10:25 am

ข้อมูลโคดทั้งหมดที่ผมนำมาทดสอบครับ
forumhulp.tar.gz
(19.86 KiB) ดาวน์โหลดแล้ว 83 ครั้ง

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย Ittichai_chupol » 03/04/2020 10:37 am

ผมทดสอบสร้างส่วนการทำงานการสร้าง โฟล์เดอร์ลง ในส่วนของ run ครับ

โค้ด: เลือกทั้งหมด

  public function run() {
        $path_img = './images/test';
        if (!file_exists($path_img)) {
            mkdir($path_img);
            chmod($path_img, 0777);
        }
    }

    public function is_runnable() {
        return (bool) $this->config['delete_inactive_users_days'];
    }

    public function should_run() {
        return $this->config['delete_inactive_users_last_gc'] < time() - $this->config['delete_inactive_users_gc'];
    }




แต่ตอนนี้ยังไม่มีผลใดๆเลยครับ

Re: อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย mindphp » 28/03/2020 11:42 am

ส่วนของ การรัน ลอง สร้างไฟล์ เป็น log ทิ้งไว้ใน folder สักไฟล์

อยากทราบวิธีการใช้งาน อีเวน cron ว่ามีการใช้งานอย่างไครับ

โดย Ittichai_chupol » 27/03/2020 11:10 am

ผมได้ทดสอบสร้างฟังชั่นสำหรับการใช้งาน อีเวน cron ไว้ดังนี้ครับ


1.เพิ่ม config ค่าใน migrations/install_test_selenium.php ดังนี้

โค้ด: เลือกทั้งหมด

  array('config.add', array('cron_task_custom_last_gc', 0)), // last run
            array('config.add', array('cron_task_custom_gc', (60))),

2.เพิ่มโคดลงใน config/services.yml

โค้ด: เลือกทั้งหมด


services:
    mindphp.test_selenium.cron.task.cron_task:
        class: mindphp\test_selenium\cron\task\cron_task
        arguments:
            - @config
        calls:
            - [set_name, [cron.task.cron_task]]
        tags:
            - { name: cron.task }

    mindphp.test_selenium.listener:
        class: mindphp\test_selenium\event\listener
        arguments:
            - @config
            - @service_container
        tags:
            - { name: event.listener }
                      
3. สร้างโฟล์เดอร์ cron จากนั้นสร้างโฟล์เดอร์ในโฟล์เดอร์ cron อีกครั้ง ชื่อว่า task จากนั้นสร้างไฟล์ php โดยใช้ชื่อว่า cron_task

โค้ด: เลือกทั้งหมด

<?php

namespace mindphp\test_selenium\cron\task;

class cron_task extends \phpbb\cron\task\base
{
   protected $config;
   public function __construct(\phpbb\config\config $config)
   {
      $this->config = $config;
   }
   public function run()
   {
      $this->config->set('cron_task_custom_last_gc', time());
   }
   public function should_run()
   {
      return $this->config['cron_task_custom_last_gc'] < time() - $this->config['cron_task_custom_gc'];
   }
}
4.เพิ่มโคดลงใน event/listener.php


<?php

/* Put your header comments here. */

namespace mindphp\test_selenium\event;

/**
* @ignore
*/
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface {

protected $config;
protected $phpbb_container;
public function __construct(\phpbb\config\config $config, $phpbb_container) {
$this->config = $config;
$this->phpbb_container = $phpbb_container;
}

static public function getSubscribedEvents() {
return array(
'boardtools.cronstatus.modify_cron_task' => 'add_my_cron_task',
'boardtools.cronstatus.modify_cron_config' => 'modify_cronlock',
);
}

public function add_my_cron_task($event) {

// print_r($event);
// exit();

if ($event['task_name'] === 'cron.task.cron_task_test') {

$last_task_date = $this->config['cron_task_custom_last_gc'];
$task_interval = $this->config['cron_task_custom_gc'];

$event['task_date'] = $last_task_date;
$event['new_task_date'] = $last_task_date + $task_interval;
}
}

public function modify_cronlock($event) {

$last_task_date = $this->config['cron_task_custom_last_gc'];
echo $last_task_date;
if (isset($event['last_task_date'])) {
if ($last_task_date >= $event['last_task_date']) {
$event['cronlock'] = 'cron_task'; // The name of our Cron Job.
$event['last_task_date'] = $last_task_date; // Update the time.
}
}
else if ($last_task_date >= $this->phpbb_container->get('boardtools.cronstatus.listener')->maxValueInArray($event['rows'], 'config_value')) {
$event['cronlock'] = 'cron_task'; // The name of our Cron Job.
$rows = $event['rows'];
$rows[] = array(
"config_name" => "cron_task_last_gc", // Any name ending with '_last_gc'.
"config_value" => $last_task_date
);
$event['rows'] = $rows;
}
}

}

โดยโดคเหล่านี้ผมได้นำมาทำตามจาก https://www.phpbb.com/customise/db/exte ... s/faq/1746

ซึ่งผมอยากทราบว่า ถ้าหากต้องการที่จะทดสอบว่า สิ่งที่เขียนนี้ถูกต้องหรือไม จะต้องทำอย่างไรครับ

ข้างบน