namirasoft-node-redis 1.4.18 → 1.4.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,8 @@ export type RedisScopeDelayParameter = {
10
10
  };
11
11
  export declare abstract class RedisScopeDelay<Parameters> extends RedisScope<Date> {
12
12
  private locker;
13
- constructor(instance: RedisInstance, locker: RedisScopeLock<Parameters>);
13
+ private max_processing_time_in_seconds;
14
+ constructor(instance: RedisInstance, locker: RedisScopeLock<Parameters>, max_processing_time_in_seconds?: number);
14
15
  protected abstract key(key_parameter: Parameters): string;
15
16
  wait(key_parameter: Parameters, parameter: RedisScopeDelayParameter): Promise<void>;
16
17
  release(key_parameter: Parameters, parameter: RedisScopeDelayParameter): Promise<void>;
@@ -13,9 +13,10 @@ exports.RedisScopeDelay = void 0;
13
13
  const namirasoft_core_1 = require("namirasoft-core");
14
14
  const RedisScope_1 = require("./RedisScope");
15
15
  class RedisScopeDelay extends RedisScope_1.RedisScope {
16
- constructor(instance, locker) {
16
+ constructor(instance, locker, max_processing_time_in_seconds = 60) {
17
17
  super(instance);
18
18
  this.locker = locker;
19
+ this.max_processing_time_in_seconds = max_processing_time_in_seconds;
19
20
  this.key = this.key.bind(this);
20
21
  this.wait = this.wait.bind(this);
21
22
  this.release = this.release.bind(this);
@@ -26,9 +27,7 @@ class RedisScopeDelay extends RedisScope_1.RedisScope {
26
27
  return;
27
28
  let key = this.key(key_parameter);
28
29
  let delay_requested = namirasoft_core_1.TimeUnitOperation.toMilliseconds(parameter.delay_value, parameter.delay_unit);
29
- let ttl_seconds = Math.ceil(delay_requested / 1000);
30
- if (ttl_seconds === 0)
31
- ttl_seconds = 1;
30
+ let ttl_seconds = Math.ceil(delay_requested / 1000) + this.max_processing_time_in_seconds;
32
31
  yield this.locker.waitForLock(key_parameter, ttl_seconds);
33
32
  let LastRun = yield this._get(key, false);
34
33
  if (!LastRun)
@@ -1 +1 @@
1
- {"version":3,"file":"RedisScopeDelay.js","sourceRoot":"","sources":["../src/RedisScopeDelay.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkE;AAElE,6CAA0C;AAU1C,MAAsB,eAA4B,SAAQ,uBAAgB;IAGtE,YAAY,QAAuB,EAAE,MAAkC;QAEnE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEK,IAAI,CAAC,aAAyB,EAAE,SAAmC;;YAErE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU;gBACnE,OAAO;YAEX,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAElC,IAAI,eAAe,GAAG,mCAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACpG,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;YACpD,IAAI,WAAW,KAAK,CAAC;gBACjB,WAAW,GAAG,CAAC,CAAC;YACpB,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE1D,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBACR,OAAO;YACX,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAI,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;YAE/D,IAAI,cAAc,GAAG,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1E,CAAC;KAAA;IACK,OAAO,CAAC,aAAyB,EAAE,SAAmC;;YAExE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU;gBACnE,OAAO;YAEX,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;KAAA;CACJ;AA7CD,0CA6CC;AAAA,CAAC"}
1
+ {"version":3,"file":"RedisScopeDelay.js","sourceRoot":"","sources":["../src/RedisScopeDelay.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkE;AAElE,6CAA0C;AAU1C,MAAsB,eAA4B,SAAQ,uBAAgB;IAItE,YAAY,QAAuB,EAAE,MAAkC,EAAE,iCAAyC,EAAE;QAEhH,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;QACrE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEK,IAAI,CAAC,aAAyB,EAAE,SAAmC;;YAErE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU;gBACnE,OAAO;YAEX,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAElC,IAAI,eAAe,GAAG,mCAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;YACpG,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC;YAC1F,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE1D,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBACR,OAAO;YACX,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5B,IAAI,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;YAE/D,IAAI,cAAc,GAAG,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC1E,CAAC;KAAA;IACK,OAAO,CAAC,aAAyB,EAAE,SAAmC;;YAExE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU;gBACnE,OAAO;YAEX,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5C,CAAC;KAAA;CACJ;AA7CD,0CA6CC;AAAA,CAAC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.18",
11
+ "version": "1.4.19",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -13,10 +13,12 @@ export type RedisScopeDelayParameter = {
13
13
  export abstract class RedisScopeDelay<Parameters> extends RedisScope<Date>
14
14
  {
15
15
  private locker: RedisScopeLock<Parameters>;
16
- constructor(instance: RedisInstance, locker: RedisScopeLock<Parameters>)
16
+ private max_processing_time_in_seconds: number;
17
+ constructor(instance: RedisInstance, locker: RedisScopeLock<Parameters>, max_processing_time_in_seconds: number = 60)
17
18
  {
18
19
  super(instance);
19
20
  this.locker = locker;
21
+ this.max_processing_time_in_seconds = max_processing_time_in_seconds;
20
22
  this.key = this.key.bind(this);
21
23
  this.wait = this.wait.bind(this);
22
24
  this.release = this.release.bind(this);
@@ -30,9 +32,7 @@ export abstract class RedisScopeDelay<Parameters> extends RedisScope<Date>
30
32
  let key = this.key(key_parameter);
31
33
 
32
34
  let delay_requested = TimeUnitOperation.toMilliseconds(parameter.delay_value, parameter.delay_unit);
33
- let ttl_seconds = Math.ceil(delay_requested / 1000);
34
- if (ttl_seconds === 0)
35
- ttl_seconds = 1;
35
+ let ttl_seconds = Math.ceil(delay_requested / 1000) + this.max_processing_time_in_seconds;
36
36
  await this.locker.waitForLock(key_parameter, ttl_seconds);
37
37
 
38
38
  let LastRun = await this._get(key, false);