如何在 MERN 应用程序上修复 Heroku H12 超时?

问题描述

我发现这是 Stack Overflow 上的一个很常见的问题,在尝试了 Heroku 支持上的所有建议解决方案后,无济于事,我也会在这里发布我的问题。

我在尝试上传图像时首先遇到此错误,然后我注意到在某些端点上重新加载页面时会发生此错误,例如在 post 端点上,它在组件安装时获取用户的帖子。 在阅读了这个问题之后,似乎没有其他选择 tjen 来实现延迟作业或为创建超时错误的任务设置后台工作程序。我不知道如何实施后台工作,但我继续使用议程包来编辑工作。这就是我所做的:

upload-image.js

  • 这是上传图片路由的控制器:
  • 我将图像创建延迟了 15 秒
exports.uploadPhoto = (req,res) => {
    const { file: { mimetype,filename,path },protocol } = req;
    const url = `${protocol}://${req.get('host')}`;

    User
        .findById(req.params.userid)
        .exec((error,user) => {
            if (error || !user) return res.status(404).json({ message: error.message,});

            agenda.define('image upload',{
                priority: 'high',concurrency: 10
            },job => {
                user.photos.push(job.attrs._id);
                user.save();

                return res.status(201).json({
                    message: `Image created`,photoUrl: job.attrs.data.photo.photoUrl,});
            });

            const newPhoto = {
                photo: {
                    mimetype,photoUrl: `${url}/${path}`,name: filename,},owner: user._id,};

            agenda.start();
            agenda.schedule('in 15 seconds','image upload',newPhoto);
        });
};

它在开发中运行良好。但是在heroku上我仍然得到相同的H12 - 超时错误。我还能尝试避免或修复超时错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...