tradeit.gg
← Back to Index

Architecture · ops.tradeit.gg

Production Cron Schedule

Contents


Full catalog of scheduled jobs running on the production tradeit-backend EC2 host. All HTTP cron jobs hit http://localhost:3000/api/v2/cron/... (or /api/v2/giveaway/cron/...) — the tradeit-backend container on port 3000. Every job is monitored via Cronitor (unique ID per job). Snapshot: 2026-05-12.

Why this matters

This catalog is the operational source of truth for pricing/inventory cadence, payment cleanup intervals, and revert/refund timing. When wiki pages or docs cite an interval (e.g., "the pricing cycle is X minutes"), this is the authoritative reference.

Cadence summary by purpose

CadenceJob classExamples
every 1 minhot-path cleanup + monitoringcleanReservedItems, checkLastFinishedTrade, clearBadSales, updateHaloOrder
every 2 minpricing pullsyncItemPrices
every 3 mininventory/bot value + bad purchasecleanBadPurchase, checkInventoryValue, checkBotValue
every 4 minhalo/uuskins ordersupdateHaloOrder?deliveryType=1, updateUuskinOrder
every 5 mingiveaway + redis trim + statement checkchooseWinners, trimOutValueInHourRedisKey, checkMaxPrepareStatement
every 10 minfull pricing/inventory cycle + SEOsyncNewPriceItemFromPricingDb (4,14,24,34,44,54), updateTradeLockCount (7,17,27,37,47,57), updateReserveAndSaleCount (same offset), tradeSurge, getSeoPageContentURIs
every 20 minpayment cleanupcleanBadNowpaymentPayment
hourly @ :05giveaway schedulerscheduleGiveaways
every 3h @ :05trending tagsgenerateTrendingTags
every 8h @ :05refundsrefundBlockIds
daily 00:00maintenance + Doppler fixmaintenance.sh, fixStuckDopplerPrices
daily 01:00analytics rollupsrunTradeitAnalytics.sh, runMonthlyAnalytics.sh, 730/market (insights item trends), 730/market-trends
daily 04:00 / 04:02backend daily restartdocker stop / docker start tradeit-backend
daily 07:xxmorning batchesinventoryDailyTracking, cleanupContainer, update-bots-levels, generateListingHack, sendBotCheckRevertTrade, flipRevertLogs
daily 08:xxrevert handlingcheckRevertTrade, instantSellCheck, handleReservedItemsRefund
daily 20:00financialaddInvestInterest
weekly Sun 00:35pro-player contentupdateProPlayersItems

Pricing/inventory cycle — confirmed 10 minutes

This page resolves the contradiction previously flagged between legacy memory (~10 min) and Wiki.js (~6 min). The crontab is authoritative: the cycle is 10 minutes.

Cronitor IDs (for quick lookup)

Each job's Cronitor ID is the public correlation key. Sorted by cadence frequency:

JobCronitor IDEndpoint / Script
cleanReservedItemsfUH0LePOST /api/v2/cron/cleanReservedItems
checkLastFinishedTrade80MptKGET /api/v2/cron/checkLastFinishedTrade
clearBadSalesHARpqpGET /api/v2/cron/clearBadSales
updateHaloOrderI9uIrfGET /api/v2/cron/updateHaloOrder
syncItemPrices89VImUGET /api/v2/cron/syncItemPrices
cleanBadPurchaseWa9CdsPOST /api/v2/cron/cleanBadPurchase
checkInventoryValuerq5CqrGET /api/v2/cron/checkInventoryValue
checkBotValueT6zGIlGET /api/v2/cron/checkBotValue
updateHaloOrder?deliveryType=1XE60aBGET (manual halo)
updateUuskinOrderxjeGOxGET /api/v2/cron/updateUuskinOrder
chooseWinnersFCRIVSPOST /api/v2/giveaway/cron/chooseWinners
trimOutValueInHourRedisKeyOg7p2FGET /api/v2/cron/trimOutValueInHourRedisKey
checkMaxPrepareStatementjXN0K8POST /api/v2/giveaway/cron/checkMaxPrepareStatement
syncNewPriceItemFromPricingDb7o9phZGET (every 10 min, offset 4)
updateTradeLockCountagXI8PGET (every 10 min, offset 7)
updateReserveAndSaleCountxlcIqsGET (every 10 min, offset 7)
tradeSurgeaGgCrRGET /api/v2/cron/tradeSurge
getSeoPageContentURIsL3oCM3GET /api/v2/cron/getSeoPageContentURIs
cleanBadNowpaymentPaymentcmLITWGET (every 20 min)
scheduleGiveawaysbM3IplGET (hourly :05)
generateTrendingTagsPcQGC1GET (every 3h :05)
refundBlockIds4MhCBaPOST (every 8h :05)
maintenance.shUihGGDshell script (daily 00:00)
fixStuckDopplerPricesHJSIpaPOST (daily 00:00)
runTradeitAnalytics.shPKK0BWshell (daily 01:00)
runMonthlyAnalytics.shNXapVFshell (daily 01:00)
730/market (insights item trends)RnnISyPOST (daily 01:00)
730/market-trends1Tp0ALGET (daily 01:00)
backend daily stopLYVCOOdocker stop (04:00)
backend daily startFTCCLwdocker start (04:02)
inventoryDailyTrackingHHQ0VMGET (07:30)
cleanupContainer7lzCHuGET (07:30)
update-bots-levelsKBY0LuGET (07:01)
generateListingHackSHC0b0GET (07:00)
sendBotCheckRevertTradec8FCAnGET (07:04)
flipRevertLogs?mode=executeaYRp89GET (07:10)
checkRevertTradejGG0ytGET (08:04)
instantSellCheck6KUI4GGET (08:04)
handleReservedItemsRefundjDVCliGET (08:14)
addInvestInterestyEVCBiGET (20:00)
updateProPlayersItemsuSMGYGPOST (Sun 00:35)

Disabled jobs

# 0 9 * * *  cronitor exec 3Q4IWE  /api/v2/cron/checkRevertIssue

Commented out in the live crontab — likely deprecated or moved.


ops.tradeit.gg — Internal Engineering Docs