承接 mateuscoimbra/scheduler-run-yii2 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mateuscoimbra/scheduler-run-yii2

Composer 安装命令:

composer require mateuscoimbra/scheduler-run-yii2

包简介

A Laravel-like scheduler for Yii2 framework.

README 文档

README

Uma biblioteca de agendamento de tarefas simples e poderosa para o Yii2, inspirada no Laravel Scheduler.

Instalação

A forma mais fácil de instalar a biblioteca é usando o Composer.

composer require mateuscoimbra/scheduler-run-yii2

Configuração

Após a instalação, você precisa configurar o componente e o controller na sua aplicação console do Yii2.

  1. Abra o arquivo de configuração de console da sua aplicação (geralmente em config/console.php).

  2. Adicione a seguinte configuração ao array de components:

    'components' => [
        // ... outros componentes
        'scheduler' => [
            'class' => \mateuscoimbra\SchedulerRunYii2\components\Scheduler::class,
            'schedule' => function (\mateuscoimbra\SchedulerRunYii2\schedule\Schedule $schedule) {
                // Defina suas tarefas aqui!
            }
        ],
    ],
  3. Adicione o controller do scheduler ao array de controllerMap:

    'controllerMap' => [
        'schedule' => \mateuscoimbra\SchedulerRunYii2\console\controllers\ScheduleController::class,
    ],

Definindo Tarefas

Dentro da função schedule que você acabou de configurar, você pode agendar comandos de console, comandos do sistema e funções anônimas.

1. Comandos de Console do Yii2

Use o método command() para agendar comandos de console do seu projeto.

$schedule->command('migrate')->daily();

2. Comandos do Sistema

Use o método exec() para agendar qualquer comando do sistema operacional.

$schedule->exec('php /var/www/seu-projeto/yii queue/work')->everyMinute();

3. Funções Anônimas (Closures)

Use o método call() para agendar uma função anônima com qualquer lógica PHP.

$schedule->call(function () {
    Yii::info('Esta tarefa foi executada!');
})->hourly();

Frequências de Agendamento

Você pode usar os métodos de frequência para definir o horário de execução.

  • everyMinute(): Executa a cada minuto.
  • hourly(): Executa no minuto zero de cada hora.
  • daily(): Executa à meia-noite (00:00).
  • cron('* * * * *'): Define uma expressão cron personalizada.

Configurando o Cron Job

Para que o agendador funcione, você precisa configurar um cron job no seu servidor para executar o comando schedule/run a cada minuto.

  1. Abra o crontab do seu servidor com o comando:

    crontab -e
  2. Adicione a seguinte linha ao final do arquivo, ajustando o caminho para o seu projeto:

    * * * * * /usr/bin/php /caminho/para/o/seu/projeto/yii schedule/run --interactive=0 1>> /dev/null 2>&1

Atenção:

  • Substitua /usr/bin/php pelo caminho completo do seu binário PHP.
  • Substitua /caminho/para/o/seu/projeto pelo caminho absoluto para o diretório raiz do seu projeto Yii2.
  • O --interactive=0 evita que o comando pare para pedir confirmações.
  • O 1>> /dev/null 2>&1 redireciona a saída e os erros para o "nada", evitando a criação de logs de cron indesejados.

Contribuições

Sinta-se à vontade para contribuir! Abra uma issue ou um pull request no nosso repositório.


---

Essa estrutura e documentação, tem uma base sólida para um projeto open-source que, com certeza, será muito útil para a comunidade Yii2! Salve yii2.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-01