MCPcopy Index your code
hub / github.com/simstudioai/sim / claimJobSchedules

Function claimJobSchedules

apps/sim/app/api/schedules/execute/route.ts:174–208  ·  view source on GitHub ↗
(queuedAt: Date, limit: number)

Source from the content-addressed store, hash-verified

172}
173
174async function claimJobSchedules(queuedAt: Date, limit: number) {
175 if (limit <= 0) return []
176
177 return db.transaction(async (tx) => {
178 const rows = await tx
179 .select({ id: workflowSchedule.id })
180 .from(workflowSchedule)
181 .where(jobScheduleFilter(queuedAt))
182 .for('update', { skipLocked: true })
183 .limit(limit)
184
185 if (rows.length === 0) return []
186
187 return tx
188 .update(workflowSchedule)
189 .set({ lastQueuedAt: queuedAt, updatedAt: queuedAt })
190 .where(
191 and(
192 jobScheduleFilter(queuedAt),
193 inArray(
194 workflowSchedule.id,
195 rows.map((row) => row.id)
196 )
197 )
198 )
199 .returning({
200 id: workflowSchedule.id,
201 cronExpression: workflowSchedule.cronExpression,
202 timezone: workflowSchedule.timezone,
203 failedCount: workflowSchedule.failedCount,
204 lastQueuedAt: workflowSchedule.lastQueuedAt,
205 sourceType: workflowSchedule.sourceType,
206 })
207 })
208}
209
210type ClaimedSchedule = Awaited<ReturnType<typeof claimWorkflowSchedules>>[number]
211type ClaimedJob = Awaited<ReturnType<typeof claimJobSchedules>>[number]

Callers 1

runScheduleTickFunction · 0.85

Calls 2

jobScheduleFilterFunction · 0.85
setMethod · 0.65

Tested by

no test coverage detected