Skip to content
Paybob

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

TaskHow oftenWhat it does
Pending Transaction SMS MatchingEvery minuteCompletes pending payments that an approved SMS pays for. See SMS verification.
Transaction Webhook DeliveryEvery minuteSends waiting webhooks and retries failed ones.
Currency Rate SyncAbout twice a dayUpdates exchange rates, if automatic sync is on.
System Update CheckUp to four times a dayChecks for a new Paybob version. See System update.
License ValidationAbout once a dayChecks 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:

Terminal
* * * * * cd /path/to/paybob && php artisan schedule:run >> /dev/null 2>&1

Copy the exact line from the page, since it contains your installation's real path.

Reading the page

The page shows one of three states:

StateMeaning
The cron has never runNo background run has been recorded. On a non-Docker installation, check the crontab line.
Cron is runningThe last run was within the last 90 minutes. All is well.
Cron may have stoppedNo 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:

Terminal
cd /opt/paybob
docker compose ps scheduler
docker compose exec app artisan paybob:health --scheduler
docker compose restart scheduler

Permissions

The page and Manual Call are one permission, given through an installation-level role.