Skip to content

Commit d29bb32

Browse files
committed
Update README and improve user queue handling in checkQueue function
1 parent a33ddbc commit d29bb32

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

‎README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ You can also choose to lock comments and posts removed from the queue, and in th
66

77
## Change History
88

9+
### v1.2.5
10+
11+
* Fixed an issue where a crash might result in checks not running until something new hits the modqueue
12+
913
### v1.2.4
1014

1115
* More robust checking of users - temporary errors will no longer cause active users to be removed from the queue.

‎src/pruneQueue.ts‎

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,26 @@ export async function checkQueue (_: unknown, context: JobContext) {
6161
return;
6262
}
6363

64-
const usersToQueue = uniq(modQueue
64+
const usersInModqueue = uniq(modQueue
6565
.filter(item => item.authorName !== "[deleted]")
6666
.map(item => item.authorName));
6767

68-
const existingQueue = await context.redis.zRange(USER_QUEUE_KEY, 0, -1);
69-
const existingUsers = new Set(existingQueue.map(user => user.member));
70-
const newUsers = usersToQueue.filter(user => !existingUsers.has(user));
68+
const existingCheckQueue = await context.redis.zRange(USER_QUEUE_KEY, 0, -1);
69+
const existingUsers = new Set(existingCheckQueue.map(user => user.member));
70+
const newUsers = usersInModqueue.filter(user => !existingUsers.has(user));
7171

72-
if (newUsers.length === 0) {
73-
console.log("No new users to add to the queue.");
74-
return;
72+
if (newUsers.length > 0) {
73+
await context.redis.zAdd(USER_QUEUE_KEY, ...newUsers.map(user => ({ member: user, score: Date.now() })));
74+
console.log(`Check step: Added ${newUsers.length} new ${pluralize("user", newUsers.length)} to the queue.`);
7575
}
7676

77-
await context.redis.zAdd(USER_QUEUE_KEY, ...newUsers.map(user => ({ member: user, score: Date.now() })));
78-
console.log(`Check step: Added ${newUsers.length} new ${pluralize("user", newUsers.length)} to the queue.`);
77+
const totalInQueue = await context.redis.zCard(USER_QUEUE_KEY);
78+
console.log(`Check step: There are now ${totalInQueue} ${pluralize("user", totalInQueue)} in the queue.`);
79+
80+
if (totalInQueue === 0) {
81+
console.log("Check step: No users in the queue after processing, skipping scheduling prune job.");
82+
return;
83+
}
7984

8085
await context.scheduler.runJob({
8186
name: ScheduledJob.PruneUsers,

0 commit comments

Comments
 (0)