คำถามติดแท็ก wp-cron

wp-cron หมายถึงระบบย่อยของ WordPress ที่อนุญาตให้มีการเรียกใช้โค้ดตามกำหนดเวลา

1
วิธีทดสอบ wp_cron
นี่เป็นคำถามที่โง่ ... ฉันกำหนดการกระทำที่จะทำงานทุกชั่วโมง: if(!wp_next_scheduled('my_hourly_events')) wp_schedule_event(time(), 'hourly', 'my_hourly_events'); add_action('my_hourly_events', 'the_function_to_run'); function the_function_to_run(){ echo 'it works!'; } ฉันจะทดสอบได้อย่างไรว่าทำงานได้โดยไม่รอชั่วโมง :) ฉันลองเพิ่มwp_clear_scheduled_hook('my_hourly_events');ก่อนรหัสนี้และเพิ่มwp_cron()หลังจาก แต่ฉันไม่เห็นว่าฟังก์ชั่นของฉันทำงานอยู่ ... แก้ไข: ตกลงฉันเพิ่มtrigger_error()ฟังก์ชั่นของฉันตรวจสอบบันทึกข้อผิดพลาด apache และมันมี :) ดังนั้นตอนนี้ฉันยิ่งสับสน: wp-cron สามารถทำงานในพื้นหลังได้อย่างไร? เพราะเห็นได้ชัดว่าเป็นสิ่งที่เกิดขึ้นถ้าฉันไม่เห็นผลลัพธ์ ... สิ่งนี้ดูเหมือนจะไม่ทำงานในบริบทของวัตถุ ทำไม?
28 events  actions  cron  wp-cron 

3
มีวิธีที่รวดเร็วในการดูกำหนดการ wp-cron หรือไม่
ฉันกำลังพยายามที่จะใช้งานปลั๊กอินตัวใดที่ทำงาน wp-cron ฉันรู้เกี่ยวกับรหัส: http://codex.wordpress.org/Function_Reference/wp_get_schedulesแต่ฉันต้องการทำบางสิ่งในแบ็กเอนด์ sql แทนที่จะเขียนปลั๊กอิน
20 wp-cron 

5
รัน WP Cron บนหลายไซต์ทางที่ถูกต้อง
ฉันมี WordPress Multisite กับเว็บไซต์หลายแห่ง ฉันจะตั้งค่าDISABLE_WP_CRONไปในของฉันtruewp-config.php ถ้าเราตั้งค่า cron task ด้วย wget หรือ curl เรามีกฎ 30 วินาทีในการรันสคริปต์ PHP มีขนาดเล็กมากที่จะส่งการแจ้งเตือนทางอีเมลและทำสิ่งอื่น ๆ (การเชื่อมต่อเซิร์ฟเวอร์ SMTP ระยะไกลอาจช้า, บางทีมันอาจเป็นกลุ่มการแจ้งเตือนทางอีเมลขนาดใหญ่มากจาก bbPress หรืออะไรก็ได้) บางทีเราสามารถใช้บางอย่างเช่นนี้? php -q wp-cron.php แต่มันจะเรียกใช้ cron เพียงหนึ่งไซต์ใน Multisite (แต่ละไซต์มีภารกิจ cron ของตัวเองในตาราง MySQL ที่แตกต่างกัน) PS บนฟอรัม wpmudev.orgฉันพบ "วิธีแก้ปัญหา" ที่แปลกซึ่งใช้ Curl PS WP CLI อื่นมีwp cronคำสั่งที่ยอดเยี่ยมแต่อนุญาตให้เรียกใช้งาน cron ด้วยตนเองเท่านั้น …

5
WP Cron ไม่ทำงานเมื่อเวลาผ่านไป
เป้าหมาย ฉันต้องการใช้wp_schedule_single_event( )เพื่อดำเนินการเหตุการณ์เดียวที่ส่งอีเมล 8 นาทีหลังจากผู้ใช้ส่งแบบฟอร์ม ปัญหา รหัสต่อไปนี้เป็นของฉันfunctions.php: function nkapi_send_to_system( $args ) { wp_mail( 'xxx', 'xxx', $args ); } add_action( 'nkapi_send', 'nkapi_send_to_system' ); function schedule_event( $id ) { wp_schedule_single_event( current_time( 'timestamp' ) + 480, 'nkapi_send', array( $id ) ); } และรหัสต่อไปนี้จะใช้ในการโทรschedule-event: schedule_event( $_SESSION['insert_id'] ); // the $_SESSION var contains an INT …
16 hooks  array  wp-cron  cron  events 

6
การแปลงเวลาบันทึกเป็นเวลาท้องถิ่นด้วย date_l18n ()
ฉันมีงาน WordPress cron ที่ส่งอีเมลเป็นระยะและบันทึกเวลาเมื่อมันถูกส่งเป็นตัวเลือกและฉันต้องการแสดงวันที่บนหน้าการตั้งค่า "อีเมลล่าสุดถูกส่งไปที่ 'x'" ฉันอยู่บนชายฝั่งตะวันตกของสหรัฐอเมริกาดังนั้นเวลาของเราจึงปิด UTC ในเวลาเจ็ดชั่วโมง ผลลัพธ์ที่คาดหวังของฉันจาก date_i18n () ผ่านการประทับเวลาจะเป็นวันที่จัดรูปแบบในประเทศโดยมีการปรับเจ็ดชั่วโมงจาก UTC อย่างไรก็ตามจะส่งคืนเวลาใน UTC แม้แต่การพยายามรับเวลาปัจจุบันก็ไม่ได้กลับไปสู่สิ่งที่ฉันคิดว่าน่าจะเป็นผลลัพธ์ที่คาดหวัง ตัวอย่างเช่น: echo date_i18n('F d, Y H:i');เอาท์พุท 5 เมษายน 2013 11:36 ตามที่คาดไว้ แต่echo date_i18n('F d, Y H:i',time());เอาท์พุท 5 เมษายน 2013 18:36 มันตั้งใจหรือไม่ ฉันจะส่งคืนวันที่จัดรูปแบบในประเทศจากการประทับเวลาที่มีอยู่ก่อนหน้าได้อย่างไร ขอบคุณสำหรับความช่วยเหลือ
15 php  date-time  wp-cron 

7
วิธีการเรียกใช้ฟังก์ชั่นทุก ๆ 5 นาที?
ฉันมีฟังก์ชั่นที่จะทำงานทุก 5 นาที ฉันได้อ้างอิงจาก codex: <?php wp_schedule_event(time(), 'hourly', 'my_schedule_hook', $args); ?> ฉันต้องการเรียกใช้ฟังก์ชั่นนี้ทุกๆ 5 นาทีโดยไม่คำนึงว่าจะเริ่มเมื่อไหร่ ฉันจะทำสิ่งนี้ได้อย่างไร นอกจากนี้ยังระบุว่า codex พูดว่า cron จะทำงานเมื่อผู้เยี่ยมชมเข้าชมเว็บไซต์ มีวิธีใดบ้างในการรัน cron เช่นเดียวกับต่อนาทีและไม่รอการเยี่ยมชม? สมมติว่าฟังก์ชั่นต่อไปนี้ควรจะรันทุกๆ 5 นาทีแล้วฉันจะใช้wp_schedule_event()หรือwp_cronไม่ได้อย่างไร? function run_evry_five_minutes(){ // codes go here }


4
ฉันควรปิดการใช้งาน WP_CRON และจะทริกเกอร์ wp-cron.php จากเซิร์ฟเวอร์ทุก ๆ สองสามนาทีหรือไม่
ดูเหมือนว่า WordPress จะใช้ WP CRON ในการโหลดหน้าเว็บทุกครั้งโดยไม่จำเป็น ฉันกำลังคิดแทนที่จะให้มันทำงานทุกครั้งทำไมไม่เพียงกำหนดเวลาให้ทำงานทุก ๆ 5 นาทีผ่านเซิร์ฟเวอร์ ฉันสามารถเรียก wp-cron.php ทุก ๆ ห้านาทีและบรรลุผลลัพธ์ที่ต้องการได้หรือไม่ มีข้อเสียอะไรหรือไม่?
12 wp-cron 

1
คำเตือน PHP เมื่อติดตั้งใหม่ (หมดเวลาการเชื่อมต่อ)
ฉันได้รับคำเตือน PHP นี้เมื่อเข้าใช้งานการติดตั้ง WordPress 3.4.1 ใหม่ (ภาษานอร์เวย์) คำเตือน: fopen (URL_TO_MY_WORDPRESS_PAGE / wp-cron.php? doing_wp_cron = 1341476616.760519027709960937500075000): การเชื่อมต่อหมดเวลาใน PATH_TO_MY_WP_FILES แน่นอนว่านี่คือการWP_DEBUGตั้งค่าสถานะtrueเป็นมันทำงานบนเซิร์ฟเวอร์การพัฒนา นี้เกิดขึ้นเป็นระยะ ๆ wp-cronเพื่อให้ดูเหมือนว่าจะมีปัญหากับ นี่น่าจะเป็นข้อผิดพลาดใน WordPress หรือมีบางอย่างผิดปกติบนเซิร์ฟเวอร์ของฉันหรือไม่? ฉันควรกังวลไหม เซิร์ฟเวอร์นั้นเป็นเซิร์ฟเวอร์ Ubuntu สด 12.04 VM พร้อมสแต็ก LAMP การค้นหาโดย Google แสดงว่าฉันไม่ใช่คนเดียวที่ประสบปัญหานี้ (ดูหน้าที่แสดงรายการบัฟเฟอร์ / ดัชนีรุ่นเพื่อดูข้อผิดพลาดจริง) แก้ไข: ฉันยังได้รับคำเตือน PHP เดียวกันนี้ในหน้าแรก มันอาจจะเกี่ยวข้องกับความจริงที่ว่าเว็บเซิร์ฟเวอร์กำลังถูก NAT? ขณะนี้ฉันได้ตั้งค่าไฟร์วอลล์เพื่อชี้พอร์ต 19235 ถึง 80 บนเซิร์ฟเวอร์การพัฒนา
10 wp-cron  warnings 

1
วิธีการตรวจสอบให้แน่ใจว่ามีเพียงหนึ่ง wp_cron () เท่านั้นที่ทำงานในเวลา?
ฉันมีwp_cron()ฟังก์ชั่นประมาณ 20 อย่างเช่นรหัสต่อไปนี้ crons เกือบทั้งหมดทำงานทุกชั่วโมง ไม่กี่รายวัน if ( ! wp_next_scheduled( 'my_task_hook' ) ) { wp_schedule_event( time(), 'hourly', 'my_task_hook' ); } add_action( 'my_task_hook', 'my_task_function' ); function my_task_function() { //Complex Code } เพื่อเพิ่มประสิทธิภาพเซิร์ฟเวอร์และเพื่อไม่ให้ได้รับข้อความ จำกัด เซิร์ฟเวอร์จาก บริษัท โฮสติ้งฉันต้องการให้แน่ใจว่า cron เดียวเท่านั้นที่ทำงานในเวลาที่กำหนด ... เป็นไปได้หรือไม่ คำตอบที่ได้รับการยอมรับในปัจจุบันนั้นยอดเยี่ยม แต่ฉันมีคำถามต่อไปนี้เป็นสาเหตุที่ทำให้ฉันเริ่มรับรางวัลสำหรับคำถามนี้ โปรดอ่านคำตอบที่ยอมรับได้ในตอนแรก สมมติว่า Cron 1 รันโค้ด cron2 ของฉันจะไม่ทำงานเพราะเรายังอยู่ใน 5 นาทีหรือ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.