@yuants/app-virtual-exchange 0.18.1 → 0.18.3
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.
- package/dist/quote/implementations/v1.js +1 -0
- package/dist/quote/implementations/v1.js.map +1 -1
- package/dist/quote/implementations/v2.js +1 -0
- package/dist/quote/implementations/v2.js.map +1 -1
- package/dist/quote/implementations/v3.js +1 -0
- package/dist/quote/implementations/v3.js.map +1 -1
- package/dist/series-collector/backwards-interest-rate.js +2 -6
- package/dist/series-collector/backwards-interest-rate.js.map +1 -1
- package/dist/series-collector/discovery.js +1 -1
- package/dist/series-collector/discovery.js.map +1 -1
- package/dist/series-collector/forwards-interest-rate.js +2 -6
- package/dist/series-collector/forwards-interest-rate.js.map +1 -1
- package/dist/series-collector/index.js +1 -2
- package/dist/series-collector/index.js.map +1 -1
- package/dist/series-collector/patch-interest-rate.js +2 -2
- package/dist/series-collector/patch-interest-rate.js.map +1 -1
- package/dist/series-collector/patch-ohlc.js +1 -1
- package/dist/series-collector/patch-ohlc.js.map +1 -1
- package/dist/series-collector/setup.js +56 -0
- package/dist/series-collector/setup.js.map +1 -0
- package/lib/quote/implementations/v1.d.ts.map +1 -1
- package/lib/quote/implementations/v1.js +1 -0
- package/lib/quote/implementations/v1.js.map +1 -1
- package/lib/quote/implementations/v2.d.ts.map +1 -1
- package/lib/quote/implementations/v2.js +1 -0
- package/lib/quote/implementations/v2.js.map +1 -1
- package/lib/quote/implementations/v3.d.ts.map +1 -1
- package/lib/quote/implementations/v3.js +1 -0
- package/lib/quote/implementations/v3.js.map +1 -1
- package/lib/series-collector/backwards-interest-rate.d.ts +1 -2
- package/lib/series-collector/backwards-interest-rate.d.ts.map +1 -1
- package/lib/series-collector/backwards-interest-rate.js +2 -6
- package/lib/series-collector/backwards-interest-rate.js.map +1 -1
- package/lib/series-collector/discovery.d.ts +1 -2
- package/lib/series-collector/discovery.d.ts.map +1 -1
- package/lib/series-collector/discovery.js +1 -1
- package/lib/series-collector/discovery.js.map +1 -1
- package/lib/series-collector/forwards-interest-rate.d.ts +1 -2
- package/lib/series-collector/forwards-interest-rate.d.ts.map +1 -1
- package/lib/series-collector/forwards-interest-rate.js +2 -6
- package/lib/series-collector/forwards-interest-rate.js.map +1 -1
- package/lib/series-collector/index.d.ts +1 -2
- package/lib/series-collector/index.d.ts.map +1 -1
- package/lib/series-collector/index.js +1 -2
- package/lib/series-collector/index.js.map +1 -1
- package/lib/series-collector/patch-interest-rate.d.ts +1 -2
- package/lib/series-collector/patch-interest-rate.d.ts.map +1 -1
- package/lib/series-collector/patch-interest-rate.js +2 -2
- package/lib/series-collector/patch-interest-rate.js.map +1 -1
- package/lib/series-collector/patch-ohlc.d.ts +1 -1
- package/lib/series-collector/patch-ohlc.d.ts.map +1 -1
- package/lib/series-collector/patch-ohlc.js +3 -3
- package/lib/series-collector/patch-ohlc.js.map +1 -1
- package/lib/series-collector/setup.d.ts +2 -0
- package/lib/series-collector/setup.d.ts.map +1 -0
- package/lib/series-collector/setup.js +58 -0
- package/lib/series-collector/setup.js.map +1 -0
- package/package.json +13 -13
- package/dist/series-collector/interest-rate.js +0 -49
- package/dist/series-collector/interest-rate.js.map +0 -1
- package/dist/series-collector/ohlc.js +0 -49
- package/dist/series-collector/ohlc.js.map +0 -1
- package/lib/series-collector/interest-rate.d.ts +0 -2
- package/lib/series-collector/interest-rate.d.ts.map +0 -1
- package/lib/series-collector/interest-rate.js +0 -51
- package/lib/series-collector/interest-rate.js.map +0 -1
- package/lib/series-collector/ohlc.d.ts +0 -2
- package/lib/series-collector/ohlc.d.ts.map +0 -1
- package/lib/series-collector/ohlc.js +0 -51
- package/lib/series-collector/ohlc.js.map +0 -1
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { formatTime, listWatch } from '@yuants/utils';
|
|
2
|
-
import { defer, map, Observable, repeat, retry, tap } from 'rxjs';
|
|
3
|
-
import { handleIngestInterestRateBackward } from './backwards-interest-rate';
|
|
4
|
-
import { listInterestRateSeriesIds } from './discovery';
|
|
5
|
-
import { handleIngestInterestRateForward } from './forwards-interest-rate';
|
|
6
|
-
import { handleInterestRatePatch } from './patch-interest-rate';
|
|
7
|
-
defer(() => listInterestRateSeriesIds())
|
|
8
|
-
.pipe(retry({ delay: 1000 }), repeat({ delay: 60000 }), map((x) => Array.from(x.entries())), listWatch((x) => x[0], ([product_id, meta]) => new Observable((sub) => {
|
|
9
|
-
// 处理每个利率品种任务: (forward / backward / patch),都需要独立调度
|
|
10
|
-
const abortController = new AbortController();
|
|
11
|
-
sub.add(() => {
|
|
12
|
-
abortController.abort();
|
|
13
|
-
});
|
|
14
|
-
// 先处理前向任务
|
|
15
|
-
const forwardTask = defer(async () => {
|
|
16
|
-
await handleIngestInterestRateForward(product_id, meta, abortController.signal);
|
|
17
|
-
})
|
|
18
|
-
.pipe(tap({
|
|
19
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][InterestRate][Forward]`, 'Error', err),
|
|
20
|
-
}), retry(), repeat())
|
|
21
|
-
.subscribe();
|
|
22
|
-
sub.add(() => {
|
|
23
|
-
forwardTask.unsubscribe();
|
|
24
|
-
});
|
|
25
|
-
// 设置后向任务
|
|
26
|
-
const backwardTask = defer(async () => {
|
|
27
|
-
await handleIngestInterestRateBackward(product_id, meta, abortController.signal);
|
|
28
|
-
})
|
|
29
|
-
.pipe(tap({
|
|
30
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][InterestRate][Backward]`, 'Error', err),
|
|
31
|
-
}), retry(), repeat())
|
|
32
|
-
.subscribe();
|
|
33
|
-
sub.add(() => {
|
|
34
|
-
backwardTask.unsubscribe();
|
|
35
|
-
});
|
|
36
|
-
// 设置补齐任务
|
|
37
|
-
const patchTask = defer(async () => {
|
|
38
|
-
await handleInterestRatePatch(product_id, meta, abortController.signal);
|
|
39
|
-
})
|
|
40
|
-
.pipe(tap({
|
|
41
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][InterestRate][Patch]`, 'Error', err),
|
|
42
|
-
}), retry(), repeat())
|
|
43
|
-
.subscribe();
|
|
44
|
-
sub.add(() => {
|
|
45
|
-
patchTask.unsubscribe();
|
|
46
|
-
});
|
|
47
|
-
})))
|
|
48
|
-
.subscribe();
|
|
49
|
-
//# sourceMappingURL=interest-rate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate.js","sourceRoot":"","sources":["../../src/series-collector/interest-rate.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatTime, listWatch } from '@yuants/utils';\nimport { defer, map, Observable, repeat, retry, tap } from 'rxjs';\nimport { handleIngestInterestRateBackward } from './backwards-interest-rate';\nimport { listInterestRateSeriesIds } from './discovery';\nimport { handleIngestInterestRateForward } from './forwards-interest-rate';\nimport { handleInterestRatePatch } from './patch-interest-rate';\n\ndefer(() => listInterestRateSeriesIds())\n .pipe(\n retry({ delay: 1000 }),\n repeat({ delay: 60000 }),\n map((x) => Array.from(x.entries())),\n listWatch(\n (x) => x[0],\n ([product_id, meta]) =>\n new Observable((sub) => {\n // 处理每个利率品种任务: (forward / backward / patch),都需要独立调度\n const abortController = new AbortController();\n\n sub.add(() => {\n abortController.abort();\n });\n\n // 先处理前向任务\n const forwardTask = defer(async () => {\n await handleIngestInterestRateForward(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Forward]`,\n 'Error',\n err,\n ),\n }),\n\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n forwardTask.unsubscribe();\n });\n\n // 设置后向任务\n const backwardTask = defer(async () => {\n await handleIngestInterestRateBackward(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Backward]`,\n 'Error',\n err,\n ),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n backwardTask.unsubscribe();\n });\n\n // 设置补齐任务\n const patchTask = defer(async () => {\n await handleInterestRatePatch(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Patch]`,\n 'Error',\n err,\n ),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n patchTask.unsubscribe();\n });\n }),\n ),\n )\n .subscribe();\n"]}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { formatTime, listWatch } from '@yuants/utils';
|
|
2
|
-
import { defer, map, Observable, repeat, retry, tap } from 'rxjs';
|
|
3
|
-
import { listOHLCSeriesIds } from './discovery';
|
|
4
|
-
import { handleIngestOHLCForward } from './forwards-ohlc';
|
|
5
|
-
import { handleIngestOHLCBackward } from './backwards-ohlc';
|
|
6
|
-
import { handleOHLCPatch } from './patch-ohlc';
|
|
7
|
-
defer(() => listOHLCSeriesIds())
|
|
8
|
-
.pipe(retry({ delay: 1000 }), repeat({ delay: 60000 }), map((x) => Array.from(x.entries())), listWatch((x) => x[0], ([product_id, direction]) => new Observable((sub) => {
|
|
9
|
-
// 处理每个利率品种任务: (forward / backward / patch),都需要独立调度
|
|
10
|
-
const abortController = new AbortController();
|
|
11
|
-
sub.add(() => {
|
|
12
|
-
abortController.abort();
|
|
13
|
-
});
|
|
14
|
-
// 先处理前向任务
|
|
15
|
-
const forwardTask = defer(async () => {
|
|
16
|
-
await handleIngestOHLCForward(product_id, direction, abortController.signal);
|
|
17
|
-
})
|
|
18
|
-
.pipe(tap({
|
|
19
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Forward]`, 'Error', err),
|
|
20
|
-
}), retry(), repeat())
|
|
21
|
-
.subscribe();
|
|
22
|
-
sub.add(() => {
|
|
23
|
-
forwardTask.unsubscribe();
|
|
24
|
-
});
|
|
25
|
-
// 设置后向任务
|
|
26
|
-
const backwardTask = defer(async () => {
|
|
27
|
-
await handleIngestOHLCBackward(product_id, direction, abortController.signal);
|
|
28
|
-
})
|
|
29
|
-
.pipe(tap({
|
|
30
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Backward]`, 'Error', err),
|
|
31
|
-
}), retry(), repeat())
|
|
32
|
-
.subscribe();
|
|
33
|
-
sub.add(() => {
|
|
34
|
-
backwardTask.unsubscribe();
|
|
35
|
-
});
|
|
36
|
-
// 设置补齐任务
|
|
37
|
-
const patchTask = defer(async () => {
|
|
38
|
-
await handleOHLCPatch(product_id, direction, abortController.signal);
|
|
39
|
-
})
|
|
40
|
-
.pipe(tap({
|
|
41
|
-
error: (err) => console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Patch]`, 'Error', err),
|
|
42
|
-
}), retry(), repeat())
|
|
43
|
-
.subscribe();
|
|
44
|
-
sub.add(() => {
|
|
45
|
-
patchTask.unsubscribe();
|
|
46
|
-
});
|
|
47
|
-
})))
|
|
48
|
-
.subscribe();
|
|
49
|
-
//# sourceMappingURL=ohlc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../../src/series-collector/ohlc.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatTime, listWatch } from '@yuants/utils';\nimport { defer, map, Observable, repeat, retry, tap } from 'rxjs';\nimport { handleIngestInterestRateBackward } from './backwards-interest-rate';\nimport { listOHLCSeriesIds } from './discovery';\nimport { handleIngestInterestRateForward } from './forwards-interest-rate';\nimport { handleInterestRatePatch } from './patch-interest-rate';\nimport { handleIngestOHLCForward } from './forwards-ohlc';\nimport { handleIngestOHLCBackward } from './backwards-ohlc';\nimport { handleOHLCPatch } from './patch-ohlc';\n\ndefer(() => listOHLCSeriesIds())\n .pipe(\n retry({ delay: 1000 }),\n repeat({ delay: 60000 }),\n map((x) => Array.from(x.entries())),\n listWatch(\n (x) => x[0],\n ([product_id, direction]) =>\n new Observable((sub) => {\n // 处理每个利率品种任务: (forward / backward / patch),都需要独立调度\n const abortController = new AbortController();\n\n sub.add(() => {\n abortController.abort();\n });\n\n // 先处理前向任务\n const forwardTask = defer(async () => {\n await handleIngestOHLCForward(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Forward]`, 'Error', err),\n }),\n\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n forwardTask.unsubscribe();\n });\n\n // 设置后向任务\n const backwardTask = defer(async () => {\n await handleIngestOHLCBackward(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Backward]`, 'Error', err),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n backwardTask.unsubscribe();\n });\n\n // 设置补齐任务\n const patchTask = defer(async () => {\n await handleOHLCPatch(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Patch]`, 'Error', err),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n patchTask.unsubscribe();\n });\n }),\n ),\n )\n .subscribe();\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate.d.ts","sourceRoot":"","sources":["../../src/series-collector/interest-rate.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("@yuants/utils");
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const backwards_interest_rate_1 = require("./backwards-interest-rate");
|
|
6
|
-
const discovery_1 = require("./discovery");
|
|
7
|
-
const forwards_interest_rate_1 = require("./forwards-interest-rate");
|
|
8
|
-
const patch_interest_rate_1 = require("./patch-interest-rate");
|
|
9
|
-
(0, rxjs_1.defer)(() => (0, discovery_1.listInterestRateSeriesIds)())
|
|
10
|
-
.pipe((0, rxjs_1.retry)({ delay: 1000 }), (0, rxjs_1.repeat)({ delay: 60000 }), (0, rxjs_1.map)((x) => Array.from(x.entries())), (0, utils_1.listWatch)((x) => x[0], ([product_id, meta]) => new rxjs_1.Observable((sub) => {
|
|
11
|
-
// 处理每个利率品种任务: (forward / backward / patch),都需要独立调度
|
|
12
|
-
const abortController = new AbortController();
|
|
13
|
-
sub.add(() => {
|
|
14
|
-
abortController.abort();
|
|
15
|
-
});
|
|
16
|
-
// 先处理前向任务
|
|
17
|
-
const forwardTask = (0, rxjs_1.defer)(async () => {
|
|
18
|
-
await (0, forwards_interest_rate_1.handleIngestInterestRateForward)(product_id, meta, abortController.signal);
|
|
19
|
-
})
|
|
20
|
-
.pipe((0, rxjs_1.tap)({
|
|
21
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][InterestRate][Forward]`, 'Error', err),
|
|
22
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
23
|
-
.subscribe();
|
|
24
|
-
sub.add(() => {
|
|
25
|
-
forwardTask.unsubscribe();
|
|
26
|
-
});
|
|
27
|
-
// 设置后向任务
|
|
28
|
-
const backwardTask = (0, rxjs_1.defer)(async () => {
|
|
29
|
-
await (0, backwards_interest_rate_1.handleIngestInterestRateBackward)(product_id, meta, abortController.signal);
|
|
30
|
-
})
|
|
31
|
-
.pipe((0, rxjs_1.tap)({
|
|
32
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][InterestRate][Backward]`, 'Error', err),
|
|
33
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
34
|
-
.subscribe();
|
|
35
|
-
sub.add(() => {
|
|
36
|
-
backwardTask.unsubscribe();
|
|
37
|
-
});
|
|
38
|
-
// 设置补齐任务
|
|
39
|
-
const patchTask = (0, rxjs_1.defer)(async () => {
|
|
40
|
-
await (0, patch_interest_rate_1.handleInterestRatePatch)(product_id, meta, abortController.signal);
|
|
41
|
-
})
|
|
42
|
-
.pipe((0, rxjs_1.tap)({
|
|
43
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][InterestRate][Patch]`, 'Error', err),
|
|
44
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
45
|
-
.subscribe();
|
|
46
|
-
sub.add(() => {
|
|
47
|
-
patchTask.unsubscribe();
|
|
48
|
-
});
|
|
49
|
-
})))
|
|
50
|
-
.subscribe();
|
|
51
|
-
//# sourceMappingURL=interest-rate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate.js","sourceRoot":"","sources":["../../src/series-collector/interest-rate.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatTime, listWatch } from '@yuants/utils';\nimport { defer, map, Observable, repeat, retry, tap } from 'rxjs';\nimport { handleIngestInterestRateBackward } from './backwards-interest-rate';\nimport { listInterestRateSeriesIds } from './discovery';\nimport { handleIngestInterestRateForward } from './forwards-interest-rate';\nimport { handleInterestRatePatch } from './patch-interest-rate';\n\ndefer(() => listInterestRateSeriesIds())\n .pipe(\n retry({ delay: 1000 }),\n repeat({ delay: 60000 }),\n map((x) => Array.from(x.entries())),\n listWatch(\n (x) => x[0],\n ([product_id, meta]) =>\n new Observable((sub) => {\n // 处理每个利率品种任务: (forward / backward / patch),都需要独立调度\n const abortController = new AbortController();\n\n sub.add(() => {\n abortController.abort();\n });\n\n // 先处理前向任务\n const forwardTask = defer(async () => {\n await handleIngestInterestRateForward(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Forward]`,\n 'Error',\n err,\n ),\n }),\n\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n forwardTask.unsubscribe();\n });\n\n // 设置后向任务\n const backwardTask = defer(async () => {\n await handleIngestInterestRateBackward(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Backward]`,\n 'Error',\n err,\n ),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n backwardTask.unsubscribe();\n });\n\n // 设置补齐任务\n const patchTask = defer(async () => {\n await handleInterestRatePatch(product_id, meta, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(\n formatTime(Date.now()),\n `[SeriesCollector][InterestRate][Patch]`,\n 'Error',\n err,\n ),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n patchTask.unsubscribe();\n });\n }),\n ),\n )\n .subscribe();\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc.d.ts","sourceRoot":"","sources":["../../src/series-collector/ohlc.ts"],"names":[],"mappings":""}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_1 = require("@yuants/utils");
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const discovery_1 = require("./discovery");
|
|
6
|
-
const forwards_ohlc_1 = require("./forwards-ohlc");
|
|
7
|
-
const backwards_ohlc_1 = require("./backwards-ohlc");
|
|
8
|
-
const patch_ohlc_1 = require("./patch-ohlc");
|
|
9
|
-
(0, rxjs_1.defer)(() => (0, discovery_1.listOHLCSeriesIds)())
|
|
10
|
-
.pipe((0, rxjs_1.retry)({ delay: 1000 }), (0, rxjs_1.repeat)({ delay: 60000 }), (0, rxjs_1.map)((x) => Array.from(x.entries())), (0, utils_1.listWatch)((x) => x[0], ([product_id, direction]) => new rxjs_1.Observable((sub) => {
|
|
11
|
-
// 处理每个利率品种任务: (forward / backward / patch),都需要独立调度
|
|
12
|
-
const abortController = new AbortController();
|
|
13
|
-
sub.add(() => {
|
|
14
|
-
abortController.abort();
|
|
15
|
-
});
|
|
16
|
-
// 先处理前向任务
|
|
17
|
-
const forwardTask = (0, rxjs_1.defer)(async () => {
|
|
18
|
-
await (0, forwards_ohlc_1.handleIngestOHLCForward)(product_id, direction, abortController.signal);
|
|
19
|
-
})
|
|
20
|
-
.pipe((0, rxjs_1.tap)({
|
|
21
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][OHLC][Forward]`, 'Error', err),
|
|
22
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
23
|
-
.subscribe();
|
|
24
|
-
sub.add(() => {
|
|
25
|
-
forwardTask.unsubscribe();
|
|
26
|
-
});
|
|
27
|
-
// 设置后向任务
|
|
28
|
-
const backwardTask = (0, rxjs_1.defer)(async () => {
|
|
29
|
-
await (0, backwards_ohlc_1.handleIngestOHLCBackward)(product_id, direction, abortController.signal);
|
|
30
|
-
})
|
|
31
|
-
.pipe((0, rxjs_1.tap)({
|
|
32
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][OHLC][Backward]`, 'Error', err),
|
|
33
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
34
|
-
.subscribe();
|
|
35
|
-
sub.add(() => {
|
|
36
|
-
backwardTask.unsubscribe();
|
|
37
|
-
});
|
|
38
|
-
// 设置补齐任务
|
|
39
|
-
const patchTask = (0, rxjs_1.defer)(async () => {
|
|
40
|
-
await (0, patch_ohlc_1.handleOHLCPatch)(product_id, direction, abortController.signal);
|
|
41
|
-
})
|
|
42
|
-
.pipe((0, rxjs_1.tap)({
|
|
43
|
-
error: (err) => console.info((0, utils_1.formatTime)(Date.now()), `[SeriesCollector][OHLC][Patch]`, 'Error', err),
|
|
44
|
-
}), (0, rxjs_1.retry)(), (0, rxjs_1.repeat)())
|
|
45
|
-
.subscribe();
|
|
46
|
-
sub.add(() => {
|
|
47
|
-
patchTask.unsubscribe();
|
|
48
|
-
});
|
|
49
|
-
})))
|
|
50
|
-
.subscribe();
|
|
51
|
-
//# sourceMappingURL=ohlc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../../src/series-collector/ohlc.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatTime, listWatch } from '@yuants/utils';\nimport { defer, map, Observable, repeat, retry, tap } from 'rxjs';\nimport { handleIngestInterestRateBackward } from './backwards-interest-rate';\nimport { listOHLCSeriesIds } from './discovery';\nimport { handleIngestInterestRateForward } from './forwards-interest-rate';\nimport { handleInterestRatePatch } from './patch-interest-rate';\nimport { handleIngestOHLCForward } from './forwards-ohlc';\nimport { handleIngestOHLCBackward } from './backwards-ohlc';\nimport { handleOHLCPatch } from './patch-ohlc';\n\ndefer(() => listOHLCSeriesIds())\n .pipe(\n retry({ delay: 1000 }),\n repeat({ delay: 60000 }),\n map((x) => Array.from(x.entries())),\n listWatch(\n (x) => x[0],\n ([product_id, direction]) =>\n new Observable((sub) => {\n // 处理每个利率品种任务: (forward / backward / patch),都需要独立调度\n const abortController = new AbortController();\n\n sub.add(() => {\n abortController.abort();\n });\n\n // 先处理前向任务\n const forwardTask = defer(async () => {\n await handleIngestOHLCForward(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Forward]`, 'Error', err),\n }),\n\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n forwardTask.unsubscribe();\n });\n\n // 设置后向任务\n const backwardTask = defer(async () => {\n await handleIngestOHLCBackward(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Backward]`, 'Error', err),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n backwardTask.unsubscribe();\n });\n\n // 设置补齐任务\n const patchTask = defer(async () => {\n await handleOHLCPatch(product_id, direction, abortController.signal);\n })\n .pipe(\n tap({\n error: (err) =>\n console.info(formatTime(Date.now()), `[SeriesCollector][OHLC][Patch]`, 'Error', err),\n }),\n retry(),\n repeat(),\n )\n .subscribe();\n\n sub.add(() => {\n patchTask.unsubscribe();\n });\n }),\n ),\n )\n .subscribe();\n"]}
|