Getting started
Scheduled jobs
The worker runs these on its own (messenger:consume async scheduler_default, times in UTC, defined in src/Schedule.php). Without a long-running worker, run them from cron instead. Each one is safe to run again.
| Command | When | What happens if it never runs |
|---|---|---|
app:check-listings | daily 03:15 | Expired listings stay online, sold ones stay up past their 30 days, owners are not warned 3 days before expiry, old notifications pile up. |
app:privacy:retention | daily 03:45 | Personal data is kept past the periods in Settings, Privacy (and promised in the privacy page). |
app:images:purge-unattached | daily 04:30 | Photos uploaded but never attached to a listing stay in storage. |
app:saved-searches:digest | daily 08:00 | People with daily saved-search alerts get nothing. |
app:currency:rates | daily 16:00 | Listings in other currencies keep the last exchange rate in the price filter, sorting and the approximate price; a currency added in Settings has no rate until it runs. |
app:feeds:sync | hourly at :20 | Business accounts' listing feeds are never imported again after the first manual run (each feed is read at most every 6 hours). |
messenger:consume async | always | No email, push or instant saved-search alert is sent. |
Crontab
* * * * * cd /srv/app && php bin/console messenger:consume async --time-limit=55 --memory-limit=128M >> var/log/cron.log 2>&1
15 3 * * * cd /srv/app && php bin/console app:check-listings >> var/log/cron.log 2>&1
45 3 * * * cd /srv/app && php bin/console app:privacy:retention >> var/log/cron.log 2>&1
30 4 * * * cd /srv/app && php bin/console app:images:purge-unattached >> var/log/cron.log 2>&1
0 8 * * * cd /srv/app && php bin/console app:saved-searches:digest >> var/log/cron.log 2>&1
20 * * * * cd /srv/app && php bin/console app:feeds:sync >> var/log/cron.log 2>&1
0 16 * * * cd /srv/app && php bin/console app:currency:rates >> var/log/cron.log 2>&1
30 2 * * * cd /srv/app && bin/backup-db >> var/log/cron.log 2>&1
Manual commands
| Command | Use |
|---|---|
app:install | Set up a new install. |
bin/update (app:update) | After deploying a new version. |
app:geo:import CC | Import or refresh a country's regions and localities from GeoNames (--dry-run -v first). |
app:images:variants | Create photo sizes missing after a release added one (bin/update runs it when needed). |
app:theme:check | After an update: which theme overrides need a look. |
app:marketplace:install <template> | Fill the catalogue from a marketplace template (--demo adds sample content, --list shows them). |
app:marketplace:export <name> | Save the current catalogue as a template. |
app:marketplace:demo-reset <template> | Public demo sites only (DEMO_SITE=1): delete all content and create the demo again. Run it nightly from cron there: 0 4 * * * cd /srv/app && php bin/console app:marketplace:demo-reset general. |
app:settings:sync | Add settings a new version introduced (the migrations do it already). |
Found a mistake? Tell us.