Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 31, 2014 15:31:44

glo
Зарегистрирован: 2014-10-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка результата запроса по временному интервалу

Всем привет.
Есть задача передать результат запроса к БД с клиента на серверное приложение. Запрос заключается в выборке данных за последние 30 секунд от времени текущего запуска. Каким образом сделать так, чтобы данные отсылались через равные интервалы времени автоматически.

import socket
import firebirdsql
from datetime import datetime, timedelta
from json import dumps
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 2020
s.connect((host, port))
conn = firebirdsql.connect(***)
curs = conn.cursor()
nowtime = datetime.now()
delttime = nowtime - timedelta(seconds=30)
def json_serial(obj):
    if isinstance(obj, datetime):
        serial = obj.strftime('%d.%m.%Y %H:%M:%S')
        return serial
query = 'select PROJ_ID_, OBJ_ID_, TIME_, LON_, LAT_, SPEED_ from basedata where TIME_ between ? and ?'
params = [delttime.strftime('%d.%m.%Y %H:%M:%S'), nowtime.strftime('%d.%m.%Y %H:%M:%S')]
curs.execute(query, params)
for c in curs.fetchall():
    response = dumps(c, default=json_serial)
    s.send(response.encode())
s.close()

Отредактировано glo (Окт. 31, 2014 20:51:30)

Офлайн

#2 Окт. 31, 2014 22:38:50

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Отправка результата запроса по временному интервалу

glo
Каким образом сделать так, чтобы данные отсылались через равные интервалы времени автоматически.

Создать задачу в celery или более простом аналоге, которая будет запускаться каждые 30 сек.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version