mirror of
https://github.com/wassname/talk.git
synced 2026-07-12 00:17:01 +08:00
[CORL 133] API Review (#2197)
* refactor: removed unused subscription code
* refactor: removed management api's
* refactor: cleanup of connections
* refactor: refactored comments edge
* refactor: simplified connection resolving
* feat: added story connection edge
* fix: added story index
* feat: added user pagination and user edge
* fix: added filter to comment query
* fix: removed unused resolvers
* fix: creating a comment reply should require auth
* refactor: cleanup of graph files
* feat: removed display name, made username non-unique
* fix: fixed tests
* fix: fixed tests
* fix: added more api docs
* fix: fixed bug with installer
* refactor: fixes and updates
* fix: added linting for graphql, fixed schema
* feat: added docker build tests
* fix: upped output timeout
* fix: fixed stacktraces in production builds
* fix: removed `git add`
- `git add` was causing issues with
partial staged changs on files
* feat: improved error messaging for auth
* refactor: cleaned up queue names
* fix: merge error
This commit is contained in:
@@ -26,7 +26,7 @@ export default class Task<T, U = any> {
|
||||
*
|
||||
* @param data the data for the job to add.
|
||||
*/
|
||||
public async add(data: T) {
|
||||
public async add(data: T): Promise<Queue.Job<T> | undefined> {
|
||||
const job = await this.queue.add(data, {
|
||||
// We always remove the job when it's complete, no need to fill up Redis
|
||||
// with completed entries if we don't need to.
|
||||
|
||||
@@ -2,11 +2,10 @@ import Queue from "bull";
|
||||
import { Db } from "mongodb";
|
||||
|
||||
import { Config } from "talk-server/config";
|
||||
import Task from "talk-server/queue/Task";
|
||||
import { createMailerTask, Mailer } from "talk-server/queue/tasks/mailer";
|
||||
import { createMailerTask, MailerQueue } from "talk-server/queue/tasks/mailer";
|
||||
import {
|
||||
createScraperTask,
|
||||
ScraperData,
|
||||
ScraperQueue,
|
||||
} from "talk-server/queue/tasks/scraper";
|
||||
import { createRedisClient } from "talk-server/services/redis";
|
||||
import TenantCache from "talk-server/services/tenant/cache";
|
||||
@@ -14,9 +13,8 @@ import TenantCache from "talk-server/services/tenant/cache";
|
||||
const createQueueOptions = async (
|
||||
config: Config
|
||||
): Promise<Queue.QueueOptions> => {
|
||||
const client = await createRedisClient(config);
|
||||
const subscriber = await createRedisClient(config);
|
||||
const blockingClient = await createRedisClient(config);
|
||||
const client = createRedisClient(config);
|
||||
const subscriber = createRedisClient(config);
|
||||
|
||||
// Return the options that can be used by the Queue.
|
||||
return {
|
||||
@@ -30,7 +28,7 @@ const createQueueOptions = async (
|
||||
case "client":
|
||||
return client;
|
||||
case "bclient":
|
||||
return blockingClient;
|
||||
return createRedisClient(config);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -49,8 +47,8 @@ export interface QueueOptions {
|
||||
}
|
||||
|
||||
export interface TaskQueue {
|
||||
mailer: Mailer;
|
||||
scraper: Task<ScraperData>;
|
||||
mailer: MailerQueue;
|
||||
scraper: ScraperQueue;
|
||||
}
|
||||
|
||||
export async function createQueue(options: QueueOptions): Promise<TaskQueue> {
|
||||
|
||||
@@ -137,7 +137,7 @@ export interface MailerInput {
|
||||
tenantID: string;
|
||||
}
|
||||
|
||||
export class Mailer {
|
||||
export class MailerQueue {
|
||||
private task: Task<MailerData>;
|
||||
private content: MailerContent;
|
||||
private tenantCache: TenantCache;
|
||||
@@ -205,4 +205,4 @@ export class Mailer {
|
||||
export const createMailerTask = (
|
||||
queue: Queue.QueueOptions,
|
||||
options: MailProcessorOptions
|
||||
) => new Mailer(queue, options);
|
||||
) => new MailerQueue(queue, options);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import Queue, { Job } from "bull";
|
||||
import { Db } from "mongodb";
|
||||
import now from "performance-now";
|
||||
|
||||
import logger from "talk-server/logger";
|
||||
import Task from "talk-server/queue/Task";
|
||||
@@ -31,6 +32,9 @@ const createJobProcessor = ({ mongo }: ScrapeProcessorOptions) => async (
|
||||
tenantID,
|
||||
});
|
||||
|
||||
// Mark the start time.
|
||||
const startTime = now();
|
||||
|
||||
log.debug("starting to scrape the story");
|
||||
|
||||
try {
|
||||
@@ -41,8 +45,15 @@ const createJobProcessor = ({ mongo }: ScrapeProcessorOptions) => async (
|
||||
|
||||
throw err;
|
||||
}
|
||||
|
||||
// Compute the end time.
|
||||
const responseTime = Math.round(now() - startTime);
|
||||
|
||||
log.debug({ responseTime }, "scraped the story");
|
||||
};
|
||||
|
||||
export type ScraperQueue = Task<ScraperData>;
|
||||
|
||||
export function createScraperTask(
|
||||
queue: Queue.QueueOptions,
|
||||
options: ScrapeProcessorOptions
|
||||
|
||||
Reference in New Issue
Block a user