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

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

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

Post by Ittichai_chupol »

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


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

Code: Select all

  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

Code: Select all


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

Code: Select all

<?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

ซึ่งผมอยากทราบว่า ถ้าหากต้องการที่จะทดสอบว่า สิ่งที่เขียนนี้ถูกต้องหรือไม จะต้องทำอย่างไรครับ
ขอให้วันนี้เป็นวันที่ดี
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25935
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

ส่วนของ การรัน ลอง สร้างไฟล์ เป็น log ทิ้งไว้ใน folder สักไฟล์
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

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

Post by Ittichai_chupol »

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

Code: Select all

  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'];
    }




แต่ตอนนี้ยังไม่มีผลใดๆเลยครับ
ขอให้วันนี้เป็นวันที่ดี
User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

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

Post by Ittichai_chupol »

ข้อมูลโคดทั้งหมดที่ผมนำมาทดสอบครับ
forumhulp.tar.gz
(19.86 KiB) Downloaded 29 times
ขอให้วันนี้เป็นวันที่ดี
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25935
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

ตัว autodbbackup เองทำงานหรือเปล่าครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27274
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

ลองตั้งค่า เเละเปิดการใช้งานเเล้ว ยังไม่เห็นทำงานนะ
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25935
Joined: 22/09/2008 6:18 pm
Contact:

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

Post by mindphp »

ตั้งแล้ว จะทำงาน เมื่อ มีการโหลดเพจ หลังจากตั้งค่า อาจจะ 3-5 นาที โดยตรงมีการเรียกดูหน้าบอร์ด หน้าใดหน้าหนึ่งก่อน
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27274
Joined: 31/03/2014 10:02 am
Contact:

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

Post by thatsawan »

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


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

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

โปรดติดต่อเจ้าของเว็บไซต์เพื่อแจ้งพวกเขาให้ทราบถึงปัญหานี้
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: No registered users and 16 guests