不能 运行 web2py 调度程序使用 postgresql 数据库

Can not run the web2py scheduler using postgresql database

我可以运行调度程序使用 sqlite 数据库,但是当我改用 postgres 数据库时会出现错误。

代码(task.py):

def AutoRemoveCacheData():
    return 'OK'

from gluon.scheduler import Scheduler
scheduler = Scheduler(db,dict(AutoRemoveCacheData=AutoRemoveCacheData),migrate=True)

错误信息:

root@ip-123-45-67-321:/var/www/web2py# python web2py.py -K ScheduleApp
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2015
Version 2.9.11-stable+timestamp.2014.09.15.23.35.11
Database drivers available: SQLite(sqlite3), MySQL(pymysql), PostgreSQL(pg8000), IMAP(imaplib)
starting single-scheduler for "ScheduleApp"...
ERROR:web2py.scheduler.ip-123-45-67-321#1388:Error retrieving status
ERROR:web2py.scheduler.ip-123-45-67-321#1388:Error retrieving status
ERROR:web2py.scheduler.ip-123-45-67-321#1388:Error retrieving status

有人知道如何解决这个问题吗?

谢谢!

我遇到了同样的错误。

  • 开发环境:windows web2py 版本,包含网络服务器和 sqlite
  • 生产环境:web2py 绑定到 Linux 网络服务器和 PostgreSQL 上的 Apache。

为了找出实际的错误原因,我调整了 gluon/scheduler.py。删除 Scheduler.send_heartbeat() 的有罪 try/except 后,我收到以下错误:NotSupportedError: type oid 114 not mapped to py type

谷歌搜索这个错误我发现 that discussion Niphlod 说:“问题来自 pg8000 不支持 json 类型。改用 psycopg2 ."

那么,让我们试试这个 Python 模块...