You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel Cron任务仅部署时执行问题求助

关于Vercel Cron任务触发但代码未执行的问题

我正在将Heroku上的部分Cron任务迁移到Vercel测试性能,目前遇到一个问题:从使用报告看Cron已触发,但代码并未实际执行,仅在部署变更时才正常运行。截图显示Cron按预期触发,但函数返回数据的时间与最后部署时间完全匹配。API地址:https://dw-router.vercel.app/api/pricefeed

API路由代码

//import type { VercelRequest, VercelResponse } from '@vercel/node';
import type { NextRequest, NextResponse } from 'next/server';
import { PriceFeed } from '@/lib/wharfsession';

export const revalidate = 0;
// GET for App Router, handler for Page Router
export async function GET(req: NextRequest, res: NextResponse) {
        console.log('---START---');
/*
        const authHeader = req.headers.get['authorization'];
        if (authHeader !== 'Bearer ${process.env.CRON_SECRET}') {
            return res.json({ success: false });
        }; */
        if ( req.method === 'GET' ) {
            try {
                const result = await PriceFeed(); //session.transact({ action: transferAction });

                //return res.status(201).json({ success: true, data: result });
                return Response.json({ success: true, data: result, status: 201 });
            } catch(err) {
                //return res.status(400).json({ success: false, data: err });
                return Response.json({ success: false, data: err, status: 401 });
            };
        } else {
            return Request.arguments;
        };
}

vercel.json配置

{
    "rewrites": [
        {"source": "/(.*)", "destination": "/"}
    ],
    "crons": [
        {
            "path": "/api/pricefeed",
            "schedule": "*/5 * * * *"
        }
    ]
}

package.json配置

{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@vercel/node": "^3.0.17",
    "@wharfkit/antelope": "^1.0.7",
    "@wharfkit/session": "^1.2.7",
    "@wharfkit/signing-request": "^3.1.0",
    "@wharfkit/wallet-plugin-privatekey": "^1.1.0",
    "next": "^14.1.0",
    "next-server": "^9.0.5",
    "prettier": "^3.2.5",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "vercel": "^33.4.1"
  },
  "devDependencies": {
    "@types/node": "^20.11.16",
    "@types/react": "^18.2.55",
    "typescript": "^5.3.3"
  }
}

疑惑点

  • Cron是如何调用GET方法的?
  • 为何Vercel不支持通用处理器,但官方Serverless API路由示例中却有相关内容?

我确定遗漏了某些配置,希望无需部署界面就能运行PriceFeed()函数,已经尝试过Vercel官方及社区的多种示例。项目处于生产环境,使用Pro计划。


内容的提问来源于stack exchange,提问作者Filip Poverud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:44:59