无法使用postgresql数据库运行web2py调度程序

时间:2015-01-27 11:51:22

标签: postgresql web2py scheduler

我可以使用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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

我遇到了同样的错误。

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

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

搜索此错误我发现that discussion Niphlod说:“问题来自pg8000不支持json类型。使用psycopg2而不是

所以,让我们试试这个Python模块......