stripe webhooks. removed payout cron. webhook for when amount is deposited into bank. More communication about payout timelines
This commit is contained in:
@@ -1,40 +1,12 @@
|
||||
const cron = require("node-cron");
|
||||
const PayoutService = require("../services/payoutService");
|
||||
|
||||
const paymentsSchedule = "0 * * * *"; // Run every hour at minute 0
|
||||
// Daily retry job for failed payouts (hourly job removed - payouts are now triggered immediately on completion)
|
||||
const retrySchedule = "0 7 * * *"; // Retry failed payouts once daily at 7 AM
|
||||
|
||||
class PayoutProcessor {
|
||||
static startScheduledPayouts() {
|
||||
console.log("Starting automated payout processor...");
|
||||
|
||||
const payoutJob = cron.schedule(
|
||||
paymentsSchedule,
|
||||
async () => {
|
||||
console.log("Running scheduled payout processing...");
|
||||
|
||||
try {
|
||||
const results = await PayoutService.processAllEligiblePayouts();
|
||||
|
||||
if (results.totalProcessed > 0) {
|
||||
console.log(
|
||||
`Payout batch completed: ${results.successful.length} successful, ${results.failed.length} failed`
|
||||
);
|
||||
|
||||
// Log any failures for monitoring
|
||||
if (results.failed.length > 0) {
|
||||
console.warn("Failed payouts:", results.failed);
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error in scheduled payout processing:", error);
|
||||
}
|
||||
},
|
||||
{
|
||||
scheduled: false,
|
||||
timezone: "America/New_York",
|
||||
}
|
||||
);
|
||||
console.log("Starting payout retry processor...");
|
||||
|
||||
const retryJob = cron.schedule(
|
||||
retrySchedule,
|
||||
@@ -59,27 +31,22 @@ class PayoutProcessor {
|
||||
}
|
||||
);
|
||||
|
||||
// Start the jobs
|
||||
payoutJob.start();
|
||||
// Start the job
|
||||
retryJob.start();
|
||||
|
||||
console.log("Payout processor jobs scheduled:");
|
||||
console.log("- Hourly payout processing: " + paymentsSchedule);
|
||||
console.log("- Daily retry processing: " + retrySchedule);
|
||||
|
||||
return {
|
||||
payoutJob,
|
||||
retryJob,
|
||||
|
||||
stop() {
|
||||
payoutJob.stop();
|
||||
retryJob.stop();
|
||||
console.log("Payout processor jobs stopped");
|
||||
},
|
||||
|
||||
getStatus() {
|
||||
return {
|
||||
payoutJobRunning: payoutJob.getStatus() === "scheduled",
|
||||
retryJobRunning: retryJob.getStatus() === "scheduled",
|
||||
};
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user