Cron Monitoring | Monaco USA

Cron Job Monitoring

Monitor and manually trigger scheduled tasks

{#if form?.error}
{form.error}
{/if} {#if form?.success}
{form.success}
{/if}
{#each cronJobs as job} {@const lastRun = getLastRun(job.id)} {@const lastStatus = lastRun ? getStatusBadge(lastRun.status) : null}

{job.name}

{job.description}

Schedule: {job.schedule}
Last Run: {#if lastRun} {formatDate(lastRun.started_at)} {:else} Never {/if}
{#if lastStatus} {@const StatusIcon = lastStatus.icon}
Status: {lastStatus.label}
{/if} {#if lastRun?.duration_ms}
Duration: {formatDuration(lastRun.duration_ms)}
{/if}
{ runningJob = job.id; return async ({ update }) => { await invalidateAll(); await update(); runningJob = null; }; }} >
{/each}

Execution History

{#if cronLogs.length === 0}

No cron executions recorded yet.

Run a job above or wait for scheduled execution.

{:else}
{#each cronLogs as log} {@const statusBadge = getStatusBadge(log.status)} {@const BadgeIcon = statusBadge.icon} {/each}
Job Status Started Duration Triggered By Details
{log.job_name} {statusBadge.label} {formatDate(log.started_at)} {formatDuration(log.duration_ms)} {log.triggered_by === 'admin-manual' ? 'Manual' : 'Scheduled'} {#if log.error_message} {log.error_message} {:else if log.result?.summary} Sent: {log.result.summary.totalRemindersSent || 0}, Errors: {log.result.summary.totalErrors || 0} {:else if log.result?.sent !== undefined} Sent: {log.result.sent} {:else} - {/if}
{/if}