System settings
Cron jobs
The background tasks that keep Paybob running, and how to check them.
Some of Paybob's work runs in the background on a schedule, not when someone clicks a button. System Settings → Cron Job shows whether that's working, what each task did last time, and lets you run everything now. It's installation-wide.
The background tasks
| Task | How often | What it does |
|---|---|---|
| Pending Transaction SMS Matching | Every minute | Completes pending payments that an approved SMS pays for. See SMS verification. |
| Transaction Webhook Delivery | Every minute | Sends waiting webhooks and retries failed ones. |
| Currency Rate Sync | About twice a day | Updates exchange rates, if automatic sync is on. |
| System Update Check | Up to four times a day | Checks for a new Paybob version. See System update. |
| License Validation | About once a day | Checks your license with the license server. |
Paybob runs all of them together every 30 minutes, and runs the two payment tasks every minute as well, so payments are confirmed and webhooks sent quickly. A task that isn't due yet is simply skipped.
Setting it up
On a Docker installation, there's nothing to set up. A scheduler runs alongside Paybob, and the page says Managed by the scheduler container.
On other installations, the page shows the command to add to your server's crontab. It runs every minute and looks like this:
* * * * * cd /path/to/paybob && php artisan schedule:run >> /dev/null 2>&1Copy the exact line from the page, since it contains your installation's real path.
Reading the page
The page shows one of three states:
| State | Meaning |
|---|---|
| The cron has never run | No background run has been recorded. On a non-Docker installation, check the crontab line. |
| Cron is running | The last run was within the last 90 minutes. All is well. |
| Cron may have stopped | No run in the last 90 minutes. Check the scheduler (below). |
It also shows when the tasks Last run, whether that run was Triggered by the schedule or by hand, its Status, and a breakdown with each task's result: Ran, Skipped or Failed, with a short message such as "Updated 337, skipped 1." A run only counts as failed if a task actually failed.
Run everything now
Click Manual Call to run every task immediately: for example, to match a payment SMS you just added by hand without waiting. Tasks with their own interval, such as exchange rates, still only run when they're due.
If tasks have stopped
On a Docker installation, check the scheduler on the server:
cd /opt/paybob
docker compose ps scheduler
docker compose exec app artisan paybob:health --scheduler
docker compose restart schedulerPermissions
The page and Manual Call are one permission, given through an installation-level role.