1. Ссылки покупок

    Стратегия на турбо опционы

    Обучение по Бинарным Опционам.

    Бизнес по рецепту. продажа женских товаров

    Мануал по добыче бесплатного трафика с поисковика Bing (2016)

    От 6к уникальных посетителей на страницу ВК

    Facebook

    Стратегия Лайв Профит - ставки на футбол

    [Ирина Шмидт] - Церебро Таргет 2016

    Новый дорген.

    Стратегия на спорт.

    Двойной арбитражник по бесплатному трафику (2016)

    Подробная инструкция по Созданию интернет магазина чая с нуля (2016)

    Чертежи солнечного био-вегетария площадью 1200 кв.м. (СБВ-Профи)

    Адский стрим по копирайтингу: то чувство, когда подглядывать - хорошо!

    Видео-Курс - Tехнология быстрого старта в email рассылках (2016)

    Продвижение партнерских программ в одноклассниках (2016)

    Научу грести трафик. Только успевай сервера покупать!

    Трафик из ВК (Схема + Кейсы)

    Пассивный доход со стабильными выплатами.Схема добычи трафика.

    Секрет создания аккаунта яндекс директ без НДС

    Система ставок от проверенного каппера

    Государственный и банковский конфискат +VIP блок (2016)

    Как работать и зарабатывать деньги на продвижении своих проектов (2016)

    Секреты бесплатной рекламы от бывшего сотрудника Вконтакте

    Mobile Арбитраж - Арбитраж мобильного трафика (2016)

    BUSINESS MANUAL - Безопасные схемы заработка

    Как получать 1000-и заказов из CPA сетей (Дм.Ковпак)

    Как зарабатывать удаленно 100 тыс. руб на продвижении в Инстаграме без вложений и жить в Тайланде

    Самонаполняемые Видео-сайты!

    Прибыльная стратегия для бинарных опционов, первый доход через считанные дни + бонус!

    Траф с Вк за копейки

    Профит на онлайн теме от 30к до Неизвестно в месяц

    Легальный высокодоходный бизнес в реале

Личный сайт Гарри | Wordpress и Cron

  1. [Личный сайт Гарри]
    Здравствуй читатель, что-то давненько я блог не обновлял. А причина одна - я был занят написанием модуля под Wordpress. Уже почти 3 недели усиленно его пишу, прерываясь, временами, на Dragon Age... Хотя скорее наоброт. Уже 3 недели я играю в Dragon Age, иногда прерываясь на написание модуля [​IMG], ну да не суть.

    [​IMG]


    Ария - симфония огня.



    В общем, дело было так:

    Во время кодинга я столкнулся с проблемой встроенного в wordpress эмулятора cron. Дело в том, что функция wp_schedule_event() упрямо отказывалась работать. Как бы я не бился, этот высер разработчиков все никак не хотел вызывать переданные в него хуки. Два дня я усиленно копал гугл, яндекс и даже рамблер, но ничего не откопал. Нет, люди конечно задавали уже на stackoverflow подобные вопросы, но ответов на них небыло или были, но не верные - пруф.

    Тем не менее я не сдавался и пошел на searchengines, где гениальные, скилловые недодевелоперы вдруг решили, что у меня что-то не то с оборудованием. [​IMG] Обсуждение, если интересно, находится тут. На серче и раньше аудитория была до невозможности убогой, но что она опустится до такого низкого уровня - этого я не ожидал... А ведь эти люди где-то работают и получают зарплату...за что, спрашивается? За то что втирают очки начальству?...


    В итоге Гарри решил написать свой велосипед и поделиться им с почтенной публикой, вдруг кому-нибудь из вас, это дело, пригодится, ведь больше нигде ответа на вопрос почему не работает wp_schedule_event() вы не найдете. Даже я не знаю почему он не работает (и знать не хочу). Я решил эту проблему "в лоб", то есть эмулировал cron своими силами. В результате получился очень компактный и юзабельный класс:

    <?php
    /**
    *
    * Эмуляция Cron в Wordpress
    * алл райтс резерфед (с) Гарри.
    *
    */
    class AftWPCron{
    private $aft_cron = false;
    function __construct(){
    $this->aft_cron = get_option("aft_cron");
    if($this->aft_cron == false) add_option("aft_cron", time(), '', $autoload = 'yes'); // Создаем в базе запись нашей опции (если ее там еще нет), в которой будет храниться дата последнего запуска скрипта.
    }

    function do_cron($interval, $hook_name){
    $last_time = intval($this->aft_cron);// для читабельности. Время последнего вызова cron
    $current_time = intval(time()); // тоже для читабельности. Текущее время
    if(($last_time + intval($interval)) <= $current_time){ // Если со времени последнего вызова cron'а уже прошло указанное кол-во секунд - вызываем хук
    do_action($hook_name);
    update_option( "aft_cron", $current_time ); //Меняем время последнего вызова.
    }
    }
    }
    // end of file //

    Класс использует 1 запись в таблице wp_options, в которой хранит в unix формате время последнего вызова хука. Хук может называться как угодно, главное чтобы он не затрагивал системные названия, иначе может случиться беда.

    Пример использования:

    include_once( "class/AftWPCron.php"); // Подключаем класс
    //называем хук process_cron_evt, просто потому что это имя нигде не зарезервировано
    add_action('process_cron_evt', 'process_action'); // Выполняем привязку хука process_cron_evt к функции process_action
    $m_cron = new AftWPCron();
    $m_cron->do_cron(30,"process_cron_evt"); // Раз в 30 секунд вызываем хук process_cron_evt
    function process_action(){
    //проверка работоспособности
    $fh = fopen(dirname(__FILE__) . "data.txt", "w+");
    fputs ($fh, "cch");
    fclose ($fh);
    }

    Работа этого скрипта не зависит от конфигурации сервера и наличия на нем расширения mod_cron. Скрипт срабатывает при посещении сайта пользователями. Он быстр и относительно безопасен. Работает только в связке с Wordpress.

    Удачного использования, и да убережет вас судьба от моих ошибок [​IMG]

    [​IMG]
    Обсудить
     

Поделиться этой страницей