Skip to content

Commit

Permalink
Update isRunning variable names for clarity
Browse files Browse the repository at this point in the history
  • Loading branch information
Zamoca42 authored and intcreator committed Nov 4, 2024
1 parent b550b32 commit 95241c7
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 23 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,19 +218,19 @@ day of week 0-7 (0 or 7 is Sunday, or use names)

#### Properties

- `isRunning`: [READ-ONLY] Indicates if a callback is currently executing. This is different from the `running` property which indicates if the cron schedule is active.
- `isCallbackRunning`: [READ-ONLY] Indicates if a callback is currently executing.

```javascript
const job = new CronJob('* * * * * *', async () => {
console.log(job.isRunning); // true during callback execution
await someAsyncTask();
console.log(job.isRunning); // still true until callback completes
console.log(job.isCallbackRunning); // true during callback execution
await someAsyncTask();
console.log(job.isCallbackRunning); // still true until callback completes
});

console.log(job.isRunning); // false
console.log(job.isCallbackRunning); // false
job.start();
console.log(job.running); // true (schedule is active)
console.log(job.isRunning); // false (no callback executing)
console.log(job.running); // true (schedule is active)
console.log(job.isCallbackRunning); // false (no callback executing)
```

### CronTime Class
Expand Down
14 changes: 7 additions & 7 deletions src/job.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ export class CronJob<OC extends CronOnCompleteCommand | null = null, C = null> {
: undefined;
waitForCompletion = false;

private _isRunning = false;
private _isCallbackRunning = false;
private _timeout?: NodeJS.Timeout;
private _callbacks: CronCallback<C, WithOnComplete<OC>>[] = [];

get isRunning() {
return this._isRunning;
get isCallbackRunning() {
return this._isCallbackRunning;
}

constructor(
Expand Down Expand Up @@ -207,9 +207,9 @@ export class CronJob<OC extends CronOnCompleteCommand | null = null, C = null> {
}

async fireOnTick() {
if (!this.waitForCompletion && this._isRunning) return;
if (!this.waitForCompletion && this._isCallbackRunning) return;

this._isRunning = true;
this._isCallbackRunning = true;

try {
for (const callback of this._callbacks) {
Expand All @@ -225,7 +225,7 @@ export class CronJob<OC extends CronOnCompleteCommand | null = null, C = null> {
} catch (error) {
console.error('[Cron] error in callback', error);
} finally {
this._isRunning = false;
this._isCallbackRunning = false;
}
}

Expand Down Expand Up @@ -322,7 +322,7 @@ export class CronJob<OC extends CronOnCompleteCommand | null = null, C = null> {
}

private async _waitForJobCompletion() {
while (this._isRunning) {
while (this._isCallbackRunning) {
await new Promise(resolve => setTimeout(resolve, 100));
}
}
Expand Down
18 changes: 9 additions & 9 deletions tests/cron.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1159,7 +1159,7 @@ describe('cron', () => {
const job = new CronJob(
'*/2 * * * * *',
async () => {
expect(job.isRunning).toBe(true);
expect(job.isCallbackRunning).toBe(true);
await new Promise<void>(resolve => {
setTimeout(() => {
callback();
Expand All @@ -1178,20 +1178,20 @@ describe('cron', () => {
true // waitForCompletion: true
);

expect(job.isRunning).toBe(false);
expect(job.isCallbackRunning).toBe(false);

// First execution
await clock.tickAsync(2000);
expect(job.isRunning).toBe(true);
expect(job.isCallbackRunning).toBe(true);

// Wait for job completion
await clock.tickAsync(500);
expect(isJobCompleted).toBe(false);
expect(job.isRunning).toBe(true);
expect(job.isCallbackRunning).toBe(true);

await clock.tickAsync(1000);
expect(isJobCompleted).toBe(true);
expect(job.isRunning).toBe(false);
expect(job.isCallbackRunning).toBe(false);

job.stop();
});
Expand All @@ -1218,12 +1218,12 @@ describe('cron', () => {
false // waitForCompletion: false
);

expect(job.isRunning).toBe(false);
expect(job.isCallbackRunning).toBe(false);

// First execution
clock.tick(1000);
expect(isJobCompleted).toBe(false);
expect(job.isRunning).toBe(false);
expect(job.isCallbackRunning).toBe(false);

job.stop();
});
Expand Down Expand Up @@ -1286,13 +1286,13 @@ describe('cron', () => {
);

await clock.tickAsync(1000);
expect(job.isRunning).toBe(true);
expect(job.isCallbackRunning).toBe(true);

job.stop();
await clock.tickAsync(500);

expect(isJobCompleted).toBe(true);
expect(job.isRunning).toBe(false);
expect(job.isCallbackRunning).toBe(false);
expect(job.running).toBe(false);
});
});
Expand Down

0 comments on commit 95241c7

Please sign in to comment.