Webasyst запуск задач по расписанию через curl

4 сентября 2015

Настроить крон для брошенных корзин или любого другого приложения Webasyst не сложно. Но бывают особо запущенные случаи, когда php-cli на хостинге не работает ни в какую.

Для решения этой проблемы придумал небольшой workaround, который опишу ниже.

Не рекомендую им пользоваться, если есть шанс всё настроить по-человечески.

Ну а если нет, поехали...

Первым делом создаём в корне установки Вебасист файл cli_get.php содержимым

<?php

if (count($_GET['argv']) < 2) {
    die();
}

try {
    require_once realpath(dirname(__FILE__).'/wa-config/').'/SystemConfig.class.php';
    $config = new SystemConfig('cli');
    waSystem::getInstance(null, $config)->dispatchCli($_GET['argv']);
} catch (Exception $e) {
    waLog::log($e, 'cli.log');
    if (waSystemConfig::isDebug()) {
        fwrite(STDERR, PHP_EOL.$e.PHP_EOL);
    }
}

Теперь мы сожем запускать задачу при помощи get-параметров.

На практике это выглядит так.

Запуск при помощи curl: /usr/local/bin/curl --silent http://site.ru/cli_get.php?argv%5B%5D=&argv%5B%5D=shop&argv%5B%5D=cartsPluginCheck

Запуск при помощи wget пока не тестировал :)