PHPackages                             mftsoft/schedule - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mftsoft/schedule

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mftsoft/schedule
================

PHP Schedule Project

v0.1.1-alpha(1mo ago)011MITPHPPHP &gt;=8.1

Since May 31Pushed 1mo agoCompare

[ Source](https://github.com/MarceloTomaz2/schedule)[ Packagist](https://packagist.org/packages/mftsoft/schedule)[ RSS](/packages/mftsoft-schedule/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

Schedule Framework
==================

[](#schedule-framework)

Uma biblioteca PHP robusta e desacoplada para gerenciamento e execução de tarefas assíncronas (Cron Jobs). O `Schedule` facilita a orquestração de rotinas, garantindo controle de concorrência, execução baseada em expressões Cron padrão e logs centralizados.

Funcionalidades
---------------

[](#funcionalidades)

- **Expressões Cron Padrão:** Integração com `dragonmantank/cron-expression` para flexibilidade na definição de agendamentos (`* * * * *`).
- **Prevenção de Concorrência:** Uso de locks exclusivos (`flock`) e tracking de execuções (`.last_run`) para garantir que uma mesma tarefa não atropele outra execução idêntica em andamento.
- **Isolamento e Logs:** Captura de exceções por tarefa sem interromper a fila principal, medindo a duração da execução e guardando o histórico no arquivo `logs/scheduler.log`.
- **Factory Simplificada:** Execução das tarefas abstraída em uma interface limpa, onde o projeto cliente apenas injeta as suas regras de negócio.

Requisitos
----------

[](#requisitos)

- PHP &gt;= 8.1
- Composer

Instalação
----------

[](#instalação)

Você pode incluir este projeto no seu aplicativo usando o Composer:

```
composer require mftsoft/schedule
```

Como Usar
---------

[](#como-usar)

### 1. Criando uma Tarefa (Task)

[](#1-criando-uma-tarefa-task)

Crie as suas tarefas estendendo a classe abstrata `Schedule\Core\AbstractTask`. Você deve implementar três métodos obrigatórios:

```
