from threading import Thread from daemonize import Daemonize from apns import APNs, Payload import redis import time import signal import sys import os def sigint_handler(signal, frame): print 'Interrupted' sys.exit(0) os._exit(0) def redisLoop(apns): r = redis.StrictRedis(host='localhost', port=6379, db=0) while 1: time.sleep(0) data = r.brpop("apns_push", 10) if data: info = data[1].split('|') print "Token: " + info[0] + " message: " + info[1] send_notif(apns, info[0], info[1]) def sigint_handler(signal, frame): print 'Interrupted' sys.exit(0) def send_notif(apns, token_hex, message): #token_hex = '602E96BF9BC15D7913871D4D90FEBD7E265500C9D22DCEC5A4AFA3FC36EBE4DC' payload = Payload(alert=message, sound="default", badge=1) apns.gateway_server.send_notification(token_hex, payload) def main(): cert_file = "/root/ios_push_test/motoliteUserDev.pem" apns = APNs(use_sandbox=True, cert_file=cert_file) redisLoop(apns) signal.signal(signal.SIGINT, sigint_handler) #pid = "/tmp/apns_sender.pid" #daemon = Daemonize(app="apns_sender", pid=pid, action=main) #daemon.start() main()