write tasks along with metadata

pull/1/head
ansuz 5 years ago
parent 9623efd10b
commit cdfbaf5ad9

@ -318,6 +318,7 @@ module.exports.create = function (cfg) {
if (metadata_cache[channel.id] && metadata_cache[channel.id].expire && if (metadata_cache[channel.id] && metadata_cache[channel.id].expire &&
metadata_cache[channel.id].expire < +new Date()) { metadata_cache[channel.id].expire < +new Date()) {
return; // Don't store messages on expired channel return; // Don't store messages on expired channel
// TODO if a channel expired a long time ago but it's still here, remove it
} }
let id; let id;
if (isCp) { if (isCp) {
@ -667,21 +668,6 @@ module.exports.create = function (cfg) {
metadata.channel = channelName; metadata.channel = channelName;
nThen(function (waitFor) { nThen(function (waitFor) {
if (!tasks) { return; } // tasks are not supported
if (typeof(metadata.expire) !== 'number' || !metadata.expire) { return; }
// the fun part...
// the user has said they want this pad to expire at some point
tasks.write(metadata.expire, "EXPIRE", [ channelName ], waitFor(function (err) {
if (err) {
// if there is an error, we don't want to crash the whole server...
// just log it, and if there's a problem you'll be able to fix it
// at a later date with the provided information
Log.error('HK_CREATE_EXPIRE_TASK', err);
Log.info('HK_INVALID_EXPIRE_TASK', JSON.stringify([metadata.expire, 'EXPIRE', channelName]));
}
}));
}).nThen(function (waitFor) {
var w = waitFor(); var w = waitFor();
/* unless this is a young channel, we will serve all messages from an offset /* unless this is a young channel, we will serve all messages from an offset
@ -739,6 +725,21 @@ module.exports.create = function (cfg) {
return void Log.error('HK_WRITE_METADATA'); return void Log.error('HK_WRITE_METADATA');
} }
}); });
// write tasks
if(tasks && metadata.expire && metadata.expire === 'number') {
// the fun part...
// the user has said they want this pad to expire at some point
tasks.write(metadata.expire, "EXPIRE", [ channelName ], function (err) {
if (err) {
// if there is an error, we don't want to crash the whole server...
// just log it, and if there's a problem you'll be able to fix it
// at a later date with the provided information
Log.error('HK_CREATE_EXPIRE_TASK', err);
Log.info('HK_INVALID_EXPIRE_TASK', JSON.stringify([metadata.expire, 'EXPIRE', channelName]));
}
});
}
sendMsg(ctx, user, [0, HISTORY_KEEPER_ID, 'MSG', user.id, JSON.stringify(metadata)]); sendMsg(ctx, user, [0, HISTORY_KEEPER_ID, 'MSG', user.id, JSON.stringify(metadata)]);
} }

Loading…
Cancel
Save