Skip to content

Commit bb4b85b

Browse files
committed
feat: add terminate workflow
1 parent 7ee2ffd commit bb4b85b

2 files changed

Lines changed: 12 additions & 24 deletions

File tree

src/services/module.service.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,23 +140,16 @@ const handleHivemindWebsiteCase = async (platform: any) => {
140140
* @param {Object} platform - Platform object
141141
*/
142142
const handleHivemindMediaWikiCase = async (platform: any) => {
143-
console.log('Handling Hivemind MediaWiki case for platform:', platform);
144143
const platformDoc = await platformService.getPlatformById(platform.platform);
145144

146145
if (!platformDoc) return;
147146

148147
const isActivated = platform.metadata?.activated;
149-
const existingWorkflowId = platformDoc.get('metadata.workflowId');
150148

151149
if (isActivated === true) {
152-
console.log('Platform is activated, checking for existing workflow ID:', existingWorkflowId);
153-
if (!existingWorkflowId) {
154-
console.log('No existing workflow ID found, executing new workflow for platform:', platformDoc.id);
155-
const workflowId = await temporalMediaWiki.executeWorkflow(platformDoc.id);
156-
console.log('New workflow ID created:', workflowId);
157-
platformDoc.set('metadata.workflowId', workflowId);
158-
await platformDoc.save();
159-
}
150+
temporalMediaWiki.executeWorkflow(platformDoc.id);
151+
} else if (isActivated === false) {
152+
temporalMediaWiki.terminateWorkflow(platformDoc.id);
160153
}
161154
};
162155

src/services/temporal/mediaWiki.service.ts

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,27 @@ const logger = parentLogger.child({ module: 'MediaWikiTemporalService' });
1111

1212
class TemporalMediaWikiService extends TemporalCoreService {
1313
public async executeWorkflow(platformId: Types.ObjectId) {
14-
console.log('Executing MediaWiki workflow for platform ID:', platformId);
1514
const client: Client = await this.getClient();
16-
const payload = {
17-
platform_id: platformId,
18-
};
15+
const payload = platformId;
1916
try {
20-
console.log('Triggering MediaWiki workflow with payload:', payload);
21-
const workflowHandle = await client.workflow.execute('MediaWikiETLWorkflow', {
17+
client.workflow.execute('MediaWikiETLWorkflow', {
2218
taskQueue: queues.TEMPORAL_QUEUE_PYTHON_HEAVY,
2319
args: [payload],
24-
workflowId: `mediawiki/${platformId}/${uuidv4()}`,
20+
workflowId: `api:mediawikietl:${platformId}`,
2521
});
26-
logger.info(`Started MediaWiki workflow with ID: ${workflowHandle}`);
27-
return workflowHandle;
2822
} catch (error) {
2923
logger.error(`Failed to trigger MediaWiki workflow: ${(error as Error).message}`);
3024
throw new Error(`Failed to trigger MediaWiki workflow: ${(error as Error).message}`);
3125
}
3226
}
3327

34-
public async terminateWorkflow(workflowId: string): Promise<void> {
28+
public async terminateWorkflow(platformId: Types.ObjectId): Promise<void> {
3529
const client: Client = await this.getClient();
36-
const handle = client.workflow.getHandle(workflowId);
37-
const description = await handle.describe();
38-
if (description.status.name !== 'TERMINATED' && description.status.name !== 'COMPLETED') {
39-
await handle.terminate('Terminated due to schedule deletion');
30+
try {
31+
client.workflow.getHandle(`api:mediawikietl:${platformId}`).terminate();
32+
} catch (error) {
33+
logger.error(`Failed to terminate MediaWiki workflow: ${(error as Error).message}`);
34+
throw new Error(`Failed to terminate MediaWiki workflow: ${(error as Error).message}`);
4035
}
4136
}
4237
}

0 commit comments

Comments
 (0)