두 개 이상의 Wordpress Cron을 실행하여 서로 다른 고정 간격으로 데이터베이스를 업데이트합니다.
워드프레스에서 크론 작업을 여러 번 실행했습니다.우선 이 문제에 대해 많이 검색했지만 정확한 해결책을 찾지 못했다는 점을 분명히 하고 싶습니다.그래서 여기에 글을 올렸습니다.
문제는 하나의 크론이 실행되고 있지만 다른 하나는 실행되고 있지 않으며 첫 번째 크론에 대해 3시간마다 간격을 예약했지만 이것에 대해 때때로 1분 이내에 여러 번 실행됩니다.다른 사람들은 절대로 실행하지 않습니다.
누구나 워드프레스 크론을 통해 서로 다른 고정된 간격으로 데이터베이스를 업데이트하는 두 가지 기능을 실행할 수 있는 솔루션을 제공합니다.미리 감사 드려요.
//The activation hooks is executed when the plugin is activated
register_activation_hook(__FILE__, 'activate_one');
register_activation_hook(__FILE__, 'activate_two');
//Filter for Adding multiple intervals
add_filter( 'cron_schedules', 'intervals_schedule' );
function intervals_schedule($schedules) {
$schedules['threehour'] = array(
'interval' => 10800, // Every 3 hours
'display' => __( 'Every 3 hours' )
);
$schedules['onehour'] = array(
'interval' => 3600, // Every 1 hour
'display' => __( 'Every 1 hour' )
);
return $schedules;
}
//Schedule a first action if it's not already scheduled
function activate_one() {
if (!wp_next_scheduled('cron_action_one')) {
wp_schedule_event( time(), 'threehour', 'cron_action_one');
}
}
//Hook into that action that'll fire threehour
add_action('cron_action_one', 'execute_one');
function execute_one()
{
//Do something or update in database;
}
//Schedule a second action if it's not already scheduled
function activate_two() {
if (!wp_next_scheduled('cron_action_two')) {
wp_schedule_event(time(), 'onehour', 'cron_action_two');
}
}
//Hook into that action that'll fire onehour
add_action('cron_action_two', 'execute_two');
function execute_two()
{
//Do something or update in database;
}
아마도 코드를 작성하고 테스트 시간 간격을 설정하는 동안 이미 다른 일정을 잡았을 것입니다.cron_action_two
이벤트, 그것은 나중에 언젠가 호출될 것입니다.여기에 나와 있는 방법 중 하나를 사용하여 확인할 수 있습니다.크론 목록은 모든 것을 명확히 해야 하며, 문제가 해결될 가능성이 높습니다.
코드를 보다 안정적으로 만들고 이러한 문제를 방지하기 위해 코드에 수정해야 할 몇 가지 사항이 있습니다.
다음과 같이 플러그인 비활성화 시 예약된 이벤트를 지웁니다.
register_deactivation_hook( __FILE__, 'my_deactivation'); function my_deactivation() { wp_clear_scheduled_hook('my_hourly_event'); }
활성화 시 예약된 후크 지우기(YES:
wp_clear_scheduled_hook( 'my_hourly_event' );
) 이미 존재하는지 확인하는 대신 (아니오:if( ! wp_next_scheduled( 'my_hourly_event' ) )
)
행운을 빕니다.
언급URL : https://stackoverflow.com/questions/32498355/run-more-than-one-wordpress-cron-for-executing-two-functions-for-updating-databa
'programing' 카테고리의 다른 글
오토젠의 직업은 무엇입니까?Linux에서 c++ 패키지를 구축할 때 sh (0) | 2023.10.07 |
---|---|
jquery select2 - 작동하지 않음 (0) | 2023.10.07 |
AngularJS bootstrap.ui modal이 표시되지 않습니다. (0) | 2023.10.02 |
이벤트 방법 이벤트 방법 이벤트 방법 (0) | 2023.10.02 |
document .touch device에 대한 클릭 기능 (0) | 2023.10.02 |