Azure函数必须每10分钟无限期地从00:59:59(小时,分钟,秒)开始运行。我正在使用的Cron时间表未成功。
我正在使用基于计时器的Javascript Azure函数,例如,
module.exports = async function (context, myTimer) {
var timeStamp = new Date().toISOString();
我不认为Azure函数中有设置开始日期/时间的设置。 cron计划程序似乎是唯一的选择。
根据Azure Functions文档:
计划表达式是一个CRON表达式,包含6个字段:
{second} {minute} {hour} {day} {month} {day of the week}
请注意,您在网上找到的许多cron表达式都省略了{second}字段,因此,如果您从其中之一进行复制,则必须针对额外的字段进行调整。
文档提供的示例:
每5分钟触发一次:
0 */5 * * * *
要在每天的9:30 AM触发:
0 30 9 * * *
59 */10 * * * *
导致以下执行时间:
59 */10-1 * * * *
不支持。
Azure函数需要在00:59:59开始其初始运行的原因是,该函数会将过去10分钟内发生的事件时间戳记与10分钟UTC时间间隔进行比较。如果任何分钟级别的事件时间戳与该间隔内的某个UTC时间戳相匹配(例如,事件2018-12-21Txx:3x:xx.xxxZ
的{{1}}与该模式2018-12-21T00:35:18.894Z
的任何UTC时间戳相匹配) ,就会执行一个动作。)
我被困住了。任何帮助表示赞赏。谢谢。
答案 0 :(得分:3)
有点大嘴巴,但是您想要的是let storage = multer.diskStorage({
// pass function that will generate destination path
destination: (req, file, cb) => {
// initial upload path
let destination = path.join(__dirname, 'uploads'); // ./uploads/
// if user logged in and You store user object in session
if (req.session && req.session.user && req.session.user.id) {
destination = path.join(destination, 'users', req.session.user.id, uuidv1()); // ./uploads/users/8/generated-uuid-here/
}
else {
destination = path.join(destination, 'files', uuidv1()); // ./uploads/files/generated-uuid-here/
}
cb(
null,
destination
);
},
// pass function that may generate unique filename if needed
filename: (req, file, cb) => {
cb(
null,
Date.now() + '.' + path.extname(file.originalname)
);
}
});
。