Skip to content

Commit 7c40e8d

Browse files
committed
update to use max attempts
1 parent 8339d5b commit 7c40e8d

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

index.js

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,39 @@ var options;
44

55
var queue = {};
66

7-
function addToDropboxQueue (message) {
8-
var token = message.token;
9-
var fileContent = message.file;
10-
var fileName = message.fileName;
11-
var saveObject = {
12-
timeout: setTimeout(function(){
13-
saveToDropBox(fileContent, fileName, token);
14-
}, options.delayTime)
15-
};
16-
if (queue[fileName]) {
17-
clearTimeout(queue[fileName].timeout);
7+
function addToDropboxQueue(message) {
8+
var id = message.fileName;
9+
if (!message.attempts) {
10+
message.attempts = 0;
1811
}
19-
queue[fileName] = saveObject;
12+
13+
if (message.attempts > options.maxAttempts) {
14+
console.error('Max attempts reached for', id);
15+
return;
16+
}
17+
18+
var timeout = setTimeout(function saveToDropBoxWrapper() {
19+
saveToDropBox(message);
20+
delete queue[id];
21+
}, options.delayTime);
22+
23+
if (queue[id]) {
24+
clearTimeout(queue[id]);
25+
}
26+
queue[id] = timeout;
2027
}
2128

22-
function saveToDropBox (file, name, token) {
29+
function saveToDropBox(message) {
2330
var client = new Dropbox.Client({
2431
key: options.id,
2532
secret: options.secret,
26-
token: token // jshint ignore:line
33+
token: message.token
2734
});
2835

29-
client.writeFile(name, file, function (err) {
36+
client.writeFile(message.fileName, message.file, function (err) {
3037
if (err) {
38+
message.attempts++;
39+
addToDropboxQueue(message);
3140
console.error(err);
3241
}
3342
});

0 commit comments

Comments
 (0)