Skip to content

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.

CommandWhenWhat happens if it never runs
app:check-listingsdaily 03:15Expired 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:retentiondaily 03:45Personal data is kept past the periods in Settings, Privacy (and promised in the privacy page).
app:images:purge-unattacheddaily 04:30Photos uploaded but never attached to a listing stay in storage.
app:saved-searches:digestdaily 08:00People with daily saved-search alerts get nothing.
app:currency:ratesdaily 16:00Listings 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:synchourly at :20Business accounts' listing feeds are never imported again after the first manual run (each feed is read at most every 6 hours).
messenger:consume asyncalwaysNo 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

CommandUse
app:installSet up a new install.
bin/update (app:update)After deploying a new version.
app:geo:import CCImport or refresh a country's regions and localities from GeoNames (--dry-run -v first).
app:images:variantsCreate photo sizes missing after a release added one (bin/update runs it when needed).
app:theme:checkAfter 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:syncAdd settings a new version introduced (the migrations do it already).

Found a mistake? Tell us.