Browse Source

feat(core): Add jobQueues query

Returns an array of all registered JobQueues
Michael Bromley 5 years ago
parent
commit
46068b34c5

+ 7 - 0
packages/asset-server-plugin/e2e/graphql/generated-e2e-asset-server-plugin-types.ts

@@ -1302,6 +1302,12 @@ export type JobListOptions = {
     filter?: Maybe<JobFilterParameter>;
 };
 
+export type JobQueue = {
+    __typename?: 'JobQueue';
+    name: Scalars['String'];
+    running: Scalars['Boolean'];
+};
+
 export type JobSortParameter = {
     id?: Maybe<SortOrder>;
     createdAt?: Maybe<SortOrder>;
@@ -2731,6 +2737,7 @@ export type Query = {
     job?: Maybe<Job>;
     jobs: JobList;
     jobsById: Array<Job>;
+    jobQueues: Array<JobQueue>;
     order?: Maybe<Order>;
     orders: OrderList;
     paymentMethods: PaymentMethodList;

+ 7 - 0
packages/common/src/generated-types.ts

@@ -1298,6 +1298,12 @@ export type JobListOptions = {
   filter?: Maybe<JobFilterParameter>;
 };
 
+export type JobQueue = {
+   __typename?: 'JobQueue';
+  name: Scalars['String'];
+  running: Scalars['Boolean'];
+};
+
 export type JobSortParameter = {
   id?: Maybe<SortOrder>;
   createdAt?: Maybe<SortOrder>;
@@ -2805,6 +2811,7 @@ export type Query = {
   job?: Maybe<Job>;
   jobs: JobList;
   jobsById: Array<Job>;
+  jobQueues: Array<JobQueue>;
   order?: Maybe<Order>;
   orders: OrderList;
   paymentMethods: PaymentMethodList;

+ 7 - 0
packages/core/e2e/graphql/generated-e2e-admin-types.ts

@@ -1302,6 +1302,12 @@ export type JobListOptions = {
     filter?: Maybe<JobFilterParameter>;
 };
 
+export type JobQueue = {
+    __typename?: 'JobQueue';
+    name: Scalars['String'];
+    running: Scalars['Boolean'];
+};
+
 export type JobSortParameter = {
     id?: Maybe<SortOrder>;
     createdAt?: Maybe<SortOrder>;
@@ -2731,6 +2737,7 @@ export type Query = {
     job?: Maybe<Job>;
     jobs: JobList;
     jobsById: Array<Job>;
+    jobQueues: Array<JobQueue>;
     order?: Maybe<Order>;
     orders: OrderList;
     paymentMethods: PaymentMethodList;

+ 6 - 0
packages/core/src/api/resolvers/admin/job.resolver.ts

@@ -30,4 +30,10 @@ export class JobResolver {
     jobsById(@Args() args: QueryJobsByIdArgs) {
         return this.jobService.getJobsById(args.jobIds || undefined);
     }
+
+    @Query()
+    @Allow(Permission.Authenticated)
+    jobQueues() {
+        return this.jobService.getJobQueues();
+    }
 }

+ 6 - 0
packages/core/src/api/schema/admin-api/job.api.graphql

@@ -2,6 +2,7 @@ type Query {
     job(jobId: ID!): Job
     jobs(options: JobListOptions): JobList!
     jobsById(jobIds: [ID!]!): [Job!]!
+    jobQueues: [JobQueue!]!
 }
 
 enum JobState {
@@ -33,3 +34,8 @@ type Job implements Node {
     isSettled: Boolean!
     duration: Int!
 }
+
+type JobQueue {
+    name: String!
+    running: Boolean!
+}

+ 8 - 1
packages/core/src/job-queue/job-queue.service.ts

@@ -1,5 +1,5 @@
 import { Injectable, OnApplicationBootstrap, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
-import { JobListOptions } from '@vendure/common/lib/generated-types';
+import { JobListOptions, JobQueue as GraphQlJobQueue } from '@vendure/common/lib/generated-types';
 import { PaginatedList } from '@vendure/common/lib/shared-types';
 
 import { ConfigService } from '../config/config.service';
@@ -93,4 +93,11 @@ export class JobQueueService implements OnApplicationBootstrap, OnModuleDestroy
     getJobsById(ids: string[]): Promise<Job[]> {
         return this.jobQueueStrategy.findManyById(ids);
     }
+
+    getJobQueues(): GraphQlJobQueue[] {
+        return this.queues.map((queue) => ({
+            name: queue.name,
+            running: queue.started,
+        }));
+    }
 }

+ 7 - 0
packages/elasticsearch-plugin/e2e/graphql/generated-e2e-elasticsearch-plugin-types.ts

@@ -1302,6 +1302,12 @@ export type JobListOptions = {
     filter?: Maybe<JobFilterParameter>;
 };
 
+export type JobQueue = {
+    __typename?: 'JobQueue';
+    name: Scalars['String'];
+    running: Scalars['Boolean'];
+};
+
 export type JobSortParameter = {
     id?: Maybe<SortOrder>;
     createdAt?: Maybe<SortOrder>;
@@ -2731,6 +2737,7 @@ export type Query = {
     job?: Maybe<Job>;
     jobs: JobList;
     jobsById: Array<Job>;
+    jobQueues: Array<JobQueue>;
     order?: Maybe<Order>;
     orders: OrderList;
     paymentMethods: PaymentMethodList;

File diff suppressed because it is too large
+ 0 - 0
schema-admin.json


+ 30 - 1
yarn.lock

@@ -7105,6 +7105,13 @@ debug@4, debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
   dependencies:
     ms "^2.1.1"
 
+debug@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
+  integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
+  dependencies:
+    ms "^2.1.1"
+
 debuglog@^1.0.1:
   version "1.0.1"
   resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
@@ -7164,7 +7171,7 @@ deep-extend@^0.6.0:
   resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
   integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
 
-deep-is@~0.1.3:
+deep-is@^0.1.3, deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -10404,6 +10411,11 @@ is-unc-path@^1.0.0:
   dependencies:
     unc-path-regex "^0.1.2"
 
+is-url@^1.2.2:
+  version "1.2.4"
+  resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
+  integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
+
 is-utf8@^0.2.0, is-utf8@^0.2.1:
   version "0.2.1"
   resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
@@ -10434,6 +10446,15 @@ is-yarn-global@^0.3.0:
   resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
   integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
 
+is2@2.0.1:
+  version "2.0.1"
+  resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a"
+  integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==
+  dependencies:
+    deep-is "^0.1.3"
+    ip-regex "^2.1.0"
+    is-url "^1.2.2"
+
 isarray@0.0.1:
   version "0.0.1"
   resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -17356,6 +17377,14 @@ tar@^6.0.0, tar@^6.0.1:
     mkdirp "^1.0.3"
     yallist "^4.0.0"
 
+tcp-port-used@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70"
+  integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==
+  dependencies:
+    debug "4.1.0"
+    is2 "2.0.1"
+
 temp-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"

Some files were not shown because too many files changed in this diff