Wordpress wp_schedule_event 랜덤 30분에서 60분 사이
30분에서 60분 사이에 WP-Cron을 임의로 시작할 수 있습니까?
내가 가진 것
add_action('my_hourly_event', 'do_this_hourly');
function my_activation()
{
if(!wp_next_scheduled( 'my_hourly_event' ))
{
wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'my_hourly_event');
}
}
add_action('wp', 'my_activation');
function do_this_hourly()
{
// do something
}
안타깝게도 wp_schedule_event에는 30분이 없으며 시간당, 매일 두 번(12H), 매일(24H)의 간격만 허용됩니다.
제 생각에는 무작위로 변경될 수 있는 예정된 이벤트가 있다는 것은 좀 이상한 일이며, 아마도 다른 구현을 검토해야 할 것입니다.당신의 선택에 대해 논의하지 않고 가능한 답변을 제공하겠습니다.
Wordpress cron 시스템에 다른 시간 간격을 허용하는 후크가 있는 플러그인이 있습니다.
한 가지 해결책은 30분마다 하나의 크론만 설정하고 무작위로 실행되거나 실행되지 않는 사용자 지정 기능을 갖는 것입니다.
if (rand(0,1)) { ....
예:
- 30분 후에 기능이 실행됩니다(그리고 30분 크론이 있습니다).
- 30분 후에 기능은 단순히 실행을 건너뜁니다.
- 다음 30분 동안 다시 트리거되고 실행됩니다(그리고 1시간 크론이 있습니다).
문제는 1시간(1회 건너뛰기 후)에 강제로 실행하는 것입니다. +30분 이상 건너뛰게 될 수 있기 때문입니다.마지막 실행 값을 저장할 수 있습니다.
또 다른 솔루션은 거의 동시에 2cron(30분 및 1시간)을 사용하고 1시간이 실행되지 않을 경우 30분을 트리거하는 사용자 지정 기능을 사용하는 것입니다.
여기 좋은 Wordpress cronjob 플러그인이 있습니다. Wordpress 테이블에 cron 실행을 안전하게 저장해야 하는 경우, 값을 가져오고 업데이트하기 위해 get_option 및 update_option과 함께 Wordpress add_option 함수를 사용할 수 있습니다.
아래 코드에서 나는 활성화 후크를 사용할 것입니다.wp
후크, 자유롭게 사용하세요.after_switch_theme
당신의 코드가 있는 테마라면...
사용할 수 있습니다.wp_schedule_single_event()
그리고 이벤트가 발생할 때마다 30-60분 사이에 무작위로 발생하는 단일 이벤트를 추가합니다;)
/**
* Registers single event to occur randomly in 30 to 60 minutes
* @action activation_hook
* @action my_awesome_event
*/
function register_event() {
$secs30to60min = rand( 1800, 3600 ); // Getting random number of seconds between 30 minutes and an hour
wp_schedule_single_event( time() + $secs30to60min, 'my_awesome_event' );
}
// Register activation hook to add the event
register_activation_hook( __FILE__, 'register_event' );
// In our awesome event we add a event to occcur randomly in 30-60 minutes again ;)
add_action( 'my_awesome_event', 'register_event' );
/**
* Does the stuff that needs to be done
* @action my_awesome_event
*/
function do_this_in_awesome_event() {
// do something
}
// Doing stuff in awesome event
add_action( 'my_awesome_event', 'do_this_in_awesome_event' );
언급URL : https://stackoverflow.com/questions/38885762/wordpress-wp-schedule-event-randomly-between-30-and-60-minutes
'programing' 카테고리의 다른 글
ND에서 1D 어레이까지 (0) | 2023.06.10 |
---|---|
-m 옵션을 사용한 Python 코드 실행 여부 (0) | 2023.06.10 |
Python에서 파일 잠금 (0) | 2023.06.10 |
오라클 AQ에서 대기열을 지우는 방법 (0) | 2023.06.10 |
Angular 2 HTTP "'AppService'에 대한 일부 매개 변수를 확인할 수 없습니다." (0) | 2023.06.10 |