phantom-d / yii2-file-daemon
Yii2 daemon for the file processing
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=5.4.0
- ext-curl: *
- yiisoft/yii2: >=2.0.4
- yiisoft/yii2-redis: *
Requires (Dev)
This package is auto-updated.
Last update: 2025-01-09 20:28:14 UTC
README
Yii2 демон для работы с файлами
Установка
Получение пакета Composer
Предпочтительный способ установки этого расширения через composer.
Выполнить команды:
php composer.phar require --prefer-dist phantom-d/yii2-file-daemon "dev-master"
или добавить в секцию require:
"phantom-d/yii2-file-daemon": "dev-master"
в ваш файл composer.json
Настройка приложения
1 - Для первоначальной настройки рекомендуется скопировать базовый файл настройки демонов.
Базовый файл конфигурации располагается в директории @vendor/phantom-d/yii2-file-daemon/config/daemons.php
Создать директорию:
- Шаблон Yii2-base -
@app/config/daemons
- Шаблон Yii2-advanced -
@app/common/config/daemons
В созданную директорию скопировать базовый файл конфигурации. В базовом файле конфигурации указаны настройки демона контролирующего запуск и остановку остальных демонов.
2 - Создаём файл контроллера демона с именем FileServerDaemonController.php
, который буде выполнять роль демона обработки файлов:
- Шаблон Yii2-base -
@app/console
<?php namespace app\console; use phantomd\filedaemon\console\controllers\FileDaemonController; /** * Class FileServerDaemonController. */ class FileServerDaemonController extends FileDaemonController { }
- Шаблон Yii2-advanced -
@app/console/controllers
<?php namespace console\controllers; use phantomd\filedaemon\console\controllers\FileDaemonController; /** * Class FileServerDaemonController. */ class FileServerDaemonController extends FileDaemonController { }
3 - Создаём файл контроллера наблюдателя с именем WatcherDaemonController.php
, который буде выполнять роль демона обработки файлов:
- Шаблон Yii2-base -
@app/console
<?php namespace app\console; use phantomd\filedaemon\console\controllers; /** * Class WatcherDaemonController. */ class WatcherDaemonController extends controllers\WatcherDaemonController { }
- Шаблон Yii2-advanced -
@app/console/controllers
<?php namespace console\controllers; use phantomd\filedaemon\console\controllers; /** * Class WatcherDaemonController. */ class WatcherDaemonController extends controllers\WatcherDaemonController { }
4 - Создаём файл REST контроллера с именем DaemonController.php
, с помощью которого будете добавлять данные для постановки задач на обработку
- Шаблон Yii2-base -
@app/controllers
<?php namespace app\controllers; /** * Class DaemonController. Frontend REST controller. */ class DaemonController extends \phantomd\filedaemon\frontend\controllers\DaemonController { /** * @var string Daemon name in configuration */ protected static $configAlias = 'file-server'; }
- Шаблон Yii2-advanced -
@app/frontend/controllers
<?php namespace frontend\controllers; /** * Class DaemonController. Frontend REST controller. */ class DaemonController extends \phantomd\filedaemon\frontend\controllers\DaemonController { /** * @var string Daemon name in configuration */ protected static $configAlias = 'file-server'; }
5 - Для непрерывной работы наблюдателя добавьте эту строчку в crontab:
5 * * * * /{PATH/TO/YII/PROJECT}/yii watcher-daemon --demonize=1
Наблюдатель не может стартовать дважды, только один процесс может работать.