decord/source/utils/Queue.tsx
2026-07-24 07:16:23 +00:00

113 lines
3.3 KiB
TypeScript

// Module ID: 7077
// Function ID: 56617
// Name: Queue
// Dependencies: [6, 7, 3, 13, 2]
// Module 7077 (Queue)
import _classCallCheck from "_classCallCheck";
import _defineProperties from "_defineProperties";
import importDefaultResult from "arrayCopy";
importDefaultResult = new importDefaultResult("Queue");
const tmp4 = (() => {
class Queue {
constructor() {
tmp = arg0;
num = arg1;
self = this;
if (arg0 === undefined) {
tmp = outer1_4;
}
if (num === undefined) {
num = 100;
}
tmp2 = outer1_2(self, Queue);
self.logger = tmp;
self.defaultRetryAfter = num;
tmp3 = Queue(outer1_1[3]);
tmp3 = new tmp3();
self.queue = tmp3;
self.timeout = null;
self.draining = false;
return;
}
}
let obj = {
key: "enqueue",
value(message, success, logId) {
const queue = this.queue;
queue.push({ message, success, logId });
this._drainIfNecessary();
}
};
const items = [obj, , , ];
obj = {
key: "length",
get() {
return this.queue.length;
}
};
items[1] = obj;
obj = {
key: "_drainIfNecessary",
value() {
let _classCallCheck;
let logId;
let self = this;
self = this;
if (null === this.timeout) {
if (0 !== self.queue.length) {
if (true !== self.draining) {
self.draining = true;
let queue = self.queue;
const arr = queue.shift();
({ success: _classCallCheck, logId } = arr);
let logger = self.logger;
let _HermesInternal = HermesInternal;
logger.log("Draining message from queue LogId:" + logId + " QueueLength: " + self.queue.length);
self.drain(arr.message, (retryAfter) => {
const logger = self.logger;
logger.log("Finished draining message from queue LogId:" + logId + " QueueLength: " + self.queue.length);
self.draining = false;
if (null == retryAfter) {
const _setImmediate = setImmediate;
setImmediate(() => outer1_0._drainIfNecessary());
callback(arg1);
} else {
let defaultRetryAfter = retryAfter.retryAfter;
if (null == defaultRetryAfter) {
defaultRetryAfter = self.defaultRetryAfter;
}
const logger2 = self.logger;
const _HermesInternal = HermesInternal;
logger2.info("Rate limited. Delaying draining of queue for " + defaultRetryAfter + " ms. LogId:" + logId + " QueueLength: " + self.queue.length);
const _setTimeout = setTimeout;
self.timeout = setTimeout(() => {
const queue = outer1_0.queue;
queue.unshift(outer1_1);
outer1_0.timeout = null;
outer1_0._drainIfNecessary();
}, defaultRetryAfter);
}
});
}
}
}
}
};
items[2] = obj;
items[3] = {
key: "clear",
value() {
const queue = this.queue;
queue.clear();
clearTimeout(this.timeout);
this.timeout = null;
this.draining = false;
}
};
return callback(Queue, items);
})();
const result = require("timestamp").fileFinishedImporting("utils/Queue.tsx");
export default tmp4;