-
Notifications
You must be signed in to change notification settings - Fork 198
Expand file tree
/
Copy pathindex.ts
More file actions
117 lines (101 loc) 路 2.97 KB
/
Copy pathindex.ts
File metadata and controls
117 lines (101 loc) 路 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import { Queue } from "bullmq"
import {
defaultJobOptions,
fakeQueue,
getRedisConnection,
} from "../../lib/connection"
import { queueNames } from "../../lib/types"
export const ScheduleJobData = {
enqueueBroadcast: "enqueueBroadcast",
prepareBroadcast: "prepareBroadcast",
sendBroadcast: "sendBroadcast",
finalizeBroadcasts: "finalizeBroadcasts",
evaluateTriggers: "evaluateTriggers",
cleanupTriggers: "cleanupTriggers",
scanSmartDelay: "scanSmartDelay",
syncUserQuota: "syncUserQuota",
reconcileMac: "reconcileMac",
maintainMacPartitions: "maintainMacPartitions",
scanCoexistRuns: "scanCoexistRuns",
purgeCoexistStaging: "purgeCoexistStaging",
refreshZaloTokens: "refreshZaloTokens",
} as const
export type ScheduleJobBroadcast = {
type: typeof ScheduleJobData.sendBroadcast
data: {
broadcastId: string
}
}
export type ScheduleJobEnqueueBroadcast = {
type: typeof ScheduleJobData.enqueueBroadcast
data: {
schedulesAt: Date
}
}
export type ScheduleJobPrepareBroadcast = {
type: typeof ScheduleJobData.prepareBroadcast
data: {
broadcastId: string
}
}
export type ScheduleJobFinalizeBroadcasts = {
type: typeof ScheduleJobData.finalizeBroadcasts
data: Record<string, never>
}
export type ScheduleJobEvaluateTriggers = {
type: typeof ScheduleJobData.evaluateTriggers
data: Record<string, never>
}
export type ScheduleJobCleanupTriggers = {
type: typeof ScheduleJobData.cleanupTriggers
data: Record<string, never>
}
export type ScheduleJobScanSmartDelay = {
type: typeof ScheduleJobData.scanSmartDelay
data: Record<string, never>
}
export type ScheduleJobSyncUserQuota = {
type: typeof ScheduleJobData.syncUserQuota
data: Record<string, never>
}
export type ScheduleJobScanCoexistRuns = {
type: typeof ScheduleJobData.scanCoexistRuns
data: Record<string, never>
}
export type ScheduleJobReconcileMac = {
type: typeof ScheduleJobData.reconcileMac
data: Record<string, never>
}
export type ScheduleJobMaintainMacPartitions = {
type: typeof ScheduleJobData.maintainMacPartitions
data: Record<string, never>
}
export type ScheduleJobPurgeCoexistStaging = {
type: typeof ScheduleJobData.purgeCoexistStaging
data: Record<string, never>
}
export type ScheduleJobRefreshZaloTokens = {
type: typeof ScheduleJobData.refreshZaloTokens
data: Record<string, never>
}
export type ScheduleJobData =
| ScheduleJobBroadcast
| ScheduleJobEnqueueBroadcast
| ScheduleJobPrepareBroadcast
| ScheduleJobFinalizeBroadcasts
| ScheduleJobEvaluateTriggers
| ScheduleJobCleanupTriggers
| ScheduleJobScanSmartDelay
| ScheduleJobSyncUserQuota
| ScheduleJobReconcileMac
| ScheduleJobMaintainMacPartitions
| ScheduleJobScanCoexistRuns
| ScheduleJobPurgeCoexistStaging
| ScheduleJobRefreshZaloTokens
export const scheduleQueue =
process.env.NEXT_PHASE === "phase-production-build"
? fakeQueue
: new Queue<ScheduleJobData>(queueNames.enum.schedule, {
connection: getRedisConnection(),
defaultJobOptions,
})