Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5deae8e

Browse files
committed
Add error log for worker failure reason, fix test-worker-activities
1 parent e3a7bf5 commit 5deae8e

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

packages/test/src/mock-native-worker.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable @typescript-eslint/no-non-null-assertion */
22
import { v4 as uuid4 } from 'uuid';
33
import { coresdk } from '@temporalio/proto';
4+
import { msStrToTs } from '@temporalio/workflow/commonjs/time';
45
import { defaultDataConverter } from '@temporalio/workflow/commonjs/converter/data-converter';
56
import {
67
Worker as RealWorker,
@@ -11,6 +12,22 @@ import {
1112
} from '@temporalio/worker/lib/worker';
1213
import { sleep } from '@temporalio/worker/lib/utils';
1314

15+
function addActivityStartDefaults(task: coresdk.activity_task.IActivityTask) {
16+
// Add some defaults for convenience
17+
if (task.start) {
18+
task.start = {
19+
attempt: 1,
20+
startedTime: msStrToTs('0 seconds'),
21+
currentAttemptScheduledTime: msStrToTs('0 seconds'),
22+
startToCloseTimeout: msStrToTs('1 minute'),
23+
scheduleToCloseTimeout: msStrToTs('1 minute'),
24+
heartbeatTimeout: msStrToTs('1 minute'),
25+
scheduledTime: msStrToTs('0 seconds'),
26+
...task.start,
27+
};
28+
}
29+
}
30+
1431
export type Task =
1532
| { workflow: coresdk.workflow_activation.IWFActivation }
1633
| { activity: coresdk.activity_task.IActivityTask };
@@ -72,6 +89,7 @@ export class MockNativeWorker implements NativeWorkerLike {
7289
const buffer = arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength);
7390
this.workflowActivations.unshift(Promise.resolve(buffer));
7491
} else {
92+
addActivityStartDefaults(task.activity);
7593
const arr = coresdk.activity_task.ActivityTask.encode(task.activity).finish();
7694
const buffer = arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength);
7795
this.activityTasks.unshift(Promise.resolve(buffer));
@@ -92,6 +110,7 @@ export class MockNativeWorker implements NativeWorkerLike {
92110
}
93111

94112
public async runActivityTask(task: coresdk.activity_task.IActivityTask): Promise<coresdk.ActivityTaskCompletion> {
113+
addActivityStartDefaults(task);
95114
const arr = coresdk.activity_task.ActivityTask.encode(task).finish();
96115
const buffer = arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength);
97116
const result = await new Promise<ArrayBuffer>((resolve) => {

packages/test/src/test-worker-activities.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import anyTest, { TestInterface, ExecutionContext } from 'ava';
33
import { v4 as uuid4 } from 'uuid';
44
import { coresdk } from '@temporalio/proto';
5+
import { DefaultLogger } from '@temporalio/worker';
56
import { defaultDataConverter } from '@temporalio/workflow/commonjs/converter/data-converter';
67
import { httpGet } from '../../test-activities/lib';
78
import { Worker } from './mock-native-worker';

packages/worker/src/worker.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,8 @@ export class Worker {
764764
)
765765
.pipe(
766766
tap({
767-
error: () => {
767+
error: (error) => {
768+
this.log.error('Worker failed', { error });
768769
this.state = 'FAILED';
769770
},
770771
})

0 commit comments

Comments
 (0)