Giter Site home page Giter Site logo

Comments (8)

zhuravljov avatar zhuravljov commented on May 12, 2024

У sync-драйвера нет консольных команд. Это отладочный драйвер, и он либо выполняет задачу в основном потоке, либо не выполняет ее если sync\Driver::$handle === false. Консольные команды есть в драйверах db, redis, amqp и gearman. Подробнее об этом в документации.

from yii2-queue.

danaki avatar danaki commented on May 12, 2024

Ок, мне бы хотелось в dev-среде, не инсталлируя redis (который у меня на prod), не трогая db и тд, сэмулировать ситуацию когда мой веб ставит что-то в очередь, а cron или что-то подобное их извлекает и выполняет через command line? Не могли бы вы имплементировать некую простую очередь на основей файлов или чего-то подобного? И еще на мой взгляд sync должен иметь команды, пусть они и ничего не делают для исключения подобного конфуза, ибо непонятно, подключлась компонента или нет.

from yii2-queue.

zhuravljov avatar zhuravljov commented on May 12, 2024

Ок, мне бы хотелось в dev-среде, не инсталлируя redis (который у меня на prod), не трогая db и тд, сэмулировать ситуацию когда мой веб ставит что-то в очередь, а cron или что-то подобное их извлекает и выполняет через command line?

С редисом понятно. А почему не через базу данных? Не представляю dev-режим без базы данных.

Не могли бы вы имплементировать некую простую очередь на основей файлов или чего-то подобного?

Вы и сами можете это сделать. Как в рамках конкретного проекта, так и в виде отдельного пакета. Свой класс типа \app\queue\FileDriver унаследованный от \zhuravljov\yii\queue\Driver с реализацией нужно вам транспортного уровня.

И еще на мой взгляд sync должен иметь команды, пусть они и ничего не делают для исключения подобного конфуза, ибо непонятно, подключлась компонента или нет.

Не думаю, что это хорошая идея. Драйвер реализует транспортную прослойку, и, это нормально, когда у каждого драйвера свои уникальные требования к окружению и способы обработки очереди. Где-то они похожи, где-то - нет.

Представьте себе очередь на базе http-запросов к веб-серверу. Основной поток отправляет запрос с заданием и не дожидаясь ответа обрывает соединение. Сервер, получив задание, игнорирует обрыв соединения, и продолжает его выполнять столько времени сколько потребуется. В этом кейсе тоже нет места консольным командам.

from yii2-queue.

danaki avatar danaki commented on May 12, 2024

Ну хорошо. Но в процессе использования по-крайней мере режима sync вскрылась более серьезная проблема. Запуск задачи по push из веба не убивал весь процесс по фатальной ошибке, ошибки никуда не логировались, да и логи типа info никуда не попадали тоже. Я что-то не так сконфигурировал? Можно это исправить?

from yii2-queue.

zhuravljov avatar zhuravljov commented on May 12, 2024

Добавьте в конфиг LogBehavior:

'as log' => \zhuravljov\yii\queue\LogBehavior::class,

Добавил пример в документацию.

from yii2-queue.

zhuravljov avatar zhuravljov commented on May 12, 2024

Получилось?

from yii2-queue.

danaki avatar danaki commented on May 12, 2024

Да, все работает, спасибо.

from yii2-queue.

zhuravljov avatar zhuravljov commented on May 12, 2024

Пожалуйста.

from yii2-queue.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.