Skip to content

Scheduled Jobs

Creating custom scheduled job

Create a file custom/Espo/Custom/Resources/metadata/app/scheduledJobs.json:

json { "YourJobName": { "jobClassName": "Espo\\Custom\\Jobs\\YourJobName" } }

Create a file custom/Espo/Custom/Jobs/YourJobName.php with the content.

```php <?php

namespace Espo\Custom\Jobs;

use Espo\Core\Job\JobDataLess;

class YourJobName implements JobDataLess { // Pass dependencies through the constructor using DI. public function __construct() { }

public function run(): void 
{    
// Write your logic here.
}

} ```

Also, you can set a label for your job (custom/Espo/Custom/Resources/i18n/en_US/ScheduledJob.json).

json { "options": { "job": { "YourJobName": "Your Job Label" } } }

To make the changes applied, clear cache at Administration.

Now, you can create a scheduled job at Administration > Scheduled Jobs. YourJobName will be available in the picklist.

You can also run your job from CLI:

bin/command run-job YourJobName