UNPKG

3.94 kBJavaScriptView Raw
1"use strict";
2
3var headers, lua, templates;
4lua = require("./lua.json");
5headers = {
6 refs: lua["refs.lua"],
7 validate_keys: lua["validate_keys.lua"],
8 validate_client: lua["validate_client.lua"],
9 refresh_expiration: lua["refresh_expiration.lua"],
10 process_tick: lua["process_tick.lua"],
11 conditions_check: lua["conditions_check.lua"],
12 get_time: lua["get_time.lua"]
13};
14
15exports.allKeys = function (id) {
16 return [
17 /*
18 HASH
19 */
20 `b_${id}_settings`,
21 /*
22 HASH
23 job index -> weight
24 */
25 `b_${id}_job_weights`,
26 /*
27 ZSET
28 job index -> expiration
29 */
30 `b_${id}_job_expirations`,
31 /*
32 HASH
33 job index -> client
34 */
35 `b_${id}_job_clients`,
36 /*
37 ZSET
38 client -> sum running
39 */
40 `b_${id}_client_running`,
41 /*
42 HASH
43 client -> num queued
44 */
45 `b_${id}_client_num_queued`,
46 /*
47 ZSET
48 client -> last job registered
49 */
50 `b_${id}_client_last_registered`,
51 /*
52 ZSET
53 client -> last seen
54 */
55 `b_${id}_client_last_seen`];
56};
57
58templates = {
59 init: {
60 keys: exports.allKeys,
61 headers: ["process_tick"],
62 refresh_expiration: true,
63 code: lua["init.lua"]
64 },
65 group_check: {
66 keys: exports.allKeys,
67 headers: [],
68 refresh_expiration: false,
69 code: lua["group_check.lua"]
70 },
71 register_client: {
72 keys: exports.allKeys,
73 headers: ["validate_keys"],
74 refresh_expiration: false,
75 code: lua["register_client.lua"]
76 },
77 blacklist_client: {
78 keys: exports.allKeys,
79 headers: ["validate_keys", "validate_client"],
80 refresh_expiration: false,
81 code: lua["blacklist_client.lua"]
82 },
83 heartbeat: {
84 keys: exports.allKeys,
85 headers: ["validate_keys", "validate_client", "process_tick"],
86 refresh_expiration: false,
87 code: lua["heartbeat.lua"]
88 },
89 update_settings: {
90 keys: exports.allKeys,
91 headers: ["validate_keys", "validate_client", "process_tick"],
92 refresh_expiration: true,
93 code: lua["update_settings.lua"]
94 },
95 running: {
96 keys: exports.allKeys,
97 headers: ["validate_keys", "validate_client", "process_tick"],
98 refresh_expiration: false,
99 code: lua["running.lua"]
100 },
101 queued: {
102 keys: exports.allKeys,
103 headers: ["validate_keys", "validate_client"],
104 refresh_expiration: false,
105 code: lua["queued.lua"]
106 },
107 done: {
108 keys: exports.allKeys,
109 headers: ["validate_keys", "validate_client", "process_tick"],
110 refresh_expiration: false,
111 code: lua["done.lua"]
112 },
113 check: {
114 keys: exports.allKeys,
115 headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"],
116 refresh_expiration: false,
117 code: lua["check.lua"]
118 },
119 submit: {
120 keys: exports.allKeys,
121 headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"],
122 refresh_expiration: true,
123 code: lua["submit.lua"]
124 },
125 register: {
126 keys: exports.allKeys,
127 headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"],
128 refresh_expiration: true,
129 code: lua["register.lua"]
130 },
131 free: {
132 keys: exports.allKeys,
133 headers: ["validate_keys", "validate_client", "process_tick"],
134 refresh_expiration: true,
135 code: lua["free.lua"]
136 },
137 current_reservoir: {
138 keys: exports.allKeys,
139 headers: ["validate_keys", "validate_client", "process_tick"],
140 refresh_expiration: false,
141 code: lua["current_reservoir.lua"]
142 },
143 increment_reservoir: {
144 keys: exports.allKeys,
145 headers: ["validate_keys", "validate_client", "process_tick"],
146 refresh_expiration: true,
147 code: lua["increment_reservoir.lua"]
148 }
149};
150exports.names = Object.keys(templates);
151
152exports.keys = function (name, id) {
153 return templates[name].keys(id);
154};
155
156exports.payload = function (name) {
157 var template;
158 template = templates[name];
159 return Array.prototype.concat(headers.refs, template.headers.map(function (h) {
160 return headers[h];
161 }), template.refresh_expiration ? headers.refresh_expiration : "", template.code).join("\n");
162};
\No newline at end of file