Add hooks (#1053)

*  add 2 hooks

*  Fix issue that if hook errors n8n would not shut down

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
Ben Hesseldieck 2020-10-14 16:38:48 +02:00 committed by GitHub
parent 12b8dd6237
commit 28074d94a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 2 deletions

View file

@ -70,6 +70,13 @@ export class Start extends Command {
static async stopProcess() {
console.log(`\nStopping n8n...`);
const externalHooks = ExternalHooks();
try {
await externalHooks.run('n8n.stop', []);
} catch (error) {
console.error('There was an error in the "n8n.stop" hook.', error);
}
setTimeout(() => {
// In case that something goes wrong with shutdown we
// kill after max. 30 seconds no matter what

View file

@ -413,7 +413,7 @@ export class ActiveWorkflowRunner {
const returnFunctions = NodeExecuteFunctions.getExecuteTriggerFunctions(workflow, node, additionalData, mode);
returnFunctions.emit = (data: INodeExecutionData[][]): void => {
WorkflowHelpers.saveStaticData(workflow);
this.runWorkflow(workflowData, node, data, additionalData, mode);
this.runWorkflow(workflowData, node, data, additionalData, mode).catch((err) => console.error(err));
};
return returnFunctions;
});

View file

@ -580,6 +580,7 @@ class App {
newWorkflowData.updatedAt = this.getCurrentDate();
await Db.collections.Workflow!.update(id, newWorkflowData);
await this.externalHooks.run('workflow.afterUpdate', [newWorkflowData]);
// We sadly get nothing back from "update". Neither if it updated a record
// nor the new value. So query now the hopefully updated entry.
@ -1907,6 +1908,6 @@ export async function start(): Promise<void> {
console.log(`n8n ready on ${ADDRESS}, port ${PORT}`);
console.log(`Version: ${versions.cli}`);
await app.externalHooks.run('n8n.ready', []);
await app.externalHooks.run('n8n.ready', [app]);
});
}