Skip to content

Commit

Permalink
feat(job-details): add pagination options in getDependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
roggervalf committed Jun 10, 2021
1 parent bbd2317 commit 40e177f
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 7 deletions.
12 changes: 7 additions & 5 deletions example/bullmq_with_flows.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ async function main() {
queueName,
async function () {
// Wait 5sec
return 1;
await new Promise((res) => setTimeout(res, 5000));

// Randomly succeeds or fails the job to put some jobs in completed and some in failed.
Expand Down Expand Up @@ -57,15 +58,16 @@ async function main() {
}
);

const children = Array.from(Array(65).keys()).map((index) => ({
name: 'child',
data: {idx: index, foo: 'bar'},
queueName,
}));
await flow.add({
name: 'parent-job',
queueName: parentQueueName,
data: {},
children: [
{name: 'child', data: {idx: 0, foo: 'bar'}, queueName},
{name: 'child', data: {idx: 1, foo: 'baz'}, queueName},
{name: 'child', data: {idx: 2, foo: 'qux'}, queueName},
],
children,
});

Arena(
Expand Down
2 changes: 1 addition & 1 deletion example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"dependencies": {
"bee-queue": "^1.4.0",
"bull": "^3.22.6",
"bullmq": "^1.28.0",
"bullmq": "^1.33.0",
"express": "^4.17.1",
"redis-server": "^1.2.2"
}
Expand Down
37 changes: 36 additions & 1 deletion src/server/views/dashboard/jobDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,42 @@ async function handler(req, res) {

if (queue.IS_BULLMQ) {
job.parent = JobHelpers.getKeyProperties(job.parentKey);
const {processed, unprocessed} = await job.getDependencies();
const processedCursor = parseInt(req.query.processedCursor, 10) || 0;
const processedCount = parseInt(req.query.processedCount, 10) || 50;
const unprocessedCursor = parseInt(req.query.unprocessedCursor, 10) || 0;
const unprocessedCount = parseInt(req.query.unprocessedCount, 10) || 50;
job.processedCount = processedCount;
job.unprocessedCount = unprocessedCount;

console.log(processedCount, unprocessedCount);
const {
processed,
unprocessed,
nextProcessedCursor,
nextUnprocessedCursor,
} = await job.getDependencies({
processed: {
cursor: processedCursor,
count: processedCount,
},
unprocessed: {
cursor: unprocessedCursor,
count: unprocessedCount,
},
});
console.log(Object.keys(processed).length);
console.log({
processed: {
cursor: processedCursor,
count: processedCount,
},
unprocessed: {
cursor: unprocessedCursor,
count: unprocessedCount,
},
});
job.processedCursor = nextProcessedCursor;
job.unprocessedCursor = nextUnprocessedCursor;
if (unprocessed && unprocessed.length) {
job.unprocessedChildren = unprocessed.map((child) => {
return JobHelpers.getKeyProperties(child);
Expand Down
22 changes: 22 additions & 0 deletions src/server/views/partials/dashboard/jobDetails.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,17 @@
<div class="col-sm-12">
<h5>Unprocessed Children</h5>

<nav aria-label="Unprocessed navigation">
<ul class="pagination">
<li><a
href="{{ basePath }}/{{ encodeURI queueHost }}/{{ encodeURI queueName }}/{{ this.id }}?unprocessedCursor={{ this.unprocessedCursor }}&amp;unprocessedCount={{ this.unprocessedCount }}"
aria-label="Previous">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</ul>
</nav>

{{#each this.unprocessedChildren}}
<a href="{{ ../basePath }}/{{ encodeURI ../queueHost }}/{{ encodeURI this.queueName }}/{{ this.id }}">
<span class="label label-danger">{{ this.id }}</span>
Expand All @@ -159,6 +170,17 @@
<div class="col-sm-12">
<h5>Processed Children</h5>

<nav aria-label="Processed navigation">
<ul class="pagination">
<li><a
href="{{ basePath }}/{{ encodeURI queueHost }}/{{ encodeURI queueName }}/{{ this.id }}?processedCursor={{ this.processedCursor }}&amp;processedCount={{ this.processedCount }}"
aria-label="Previous">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</ul>
</nav>

{{#each this.processedChildren}}
<a href="{{ ../basePath }}/{{ encodeURI ../queueHost }}/{{ encodeURI this.queueName }}/{{ this.id }}">
<span class="label label-success">{{ this.id }}</span>
Expand Down

0 comments on commit 40e177f

Please sign in to comment.