Beispiel #1
0
def pub():
    import simplejson as json
    from juggernaut import Juggernaut
    jug = Juggernaut()
    d = {'foo': 'bar'}

    jug.publish('switch', json.dumps(d))
Beispiel #2
0
class JuggernautEventedStruct(EventedValidatingStruct):
    __EVENT_DISPATCHER__ = EventDispatcher

    def __init__(self, **kwargs):
        super(JuggernautEventedStruct, self).__init__(**kwargs)
        self.__JUGGERNAUT__ = Juggernaut()

    def on(self, signal_name, callback):
        self.__EVENT_DISPATCHER__.subscribe(signal_name, callback, self)

    def emit(self, signal_name, **kwargs):
        self.__JUGGERNAUT__.publish(signal_name, kwargs)
Beispiel #3
0
 def process_IN_MODIFY(self, event):
     if any([True for ext in EXTENSIONS if event.pathname.endswith(ext)]):
         msg = "Modified: %s" % (event.pathname)
         print msg
         jug = Juggernaut(REDIS)
         jug.publish("channel1", msg)
Beispiel #4
0
Datei: 1.py Projekt: woto/EPC
from juggernaut import Juggernaut
import pdb

pdb.set_trace()
jug = Juggernaut()

jug.publish('chat', '123')
Beispiel #5
0
def pull_marta_realtime_data():
    logger = pull_marta_realtime_data.get_logger()
    logger.info("Starting MARTA realtime pull")
    stale = set(Bus.objects.filter(is_stale=False).values_list("id"))

    try:
        data = json.loads(requests.get(app.config["MARTA_ENDPOINT"]).content)
        socket = Juggernaut()
        queue = app.config.get("MARTA_SOCKET_QUEUE", "marta")
        push = []

        for info in data:
            defaults = {
                "id": info["VEHICLE"],
                "direction": info["DIRECTION"],
                "route": info["ROUTE"],
                "location": (float(info["LATITUDE"]), float(info["LONGITUDE"])),
                "status_time": parse_date(info["MSGTIME"]),
                "timepoint": info["TIMEPOINT"],
                "stop_id": info.get("STOPID", ""),
                "is_stale": False,
            }

            try:
                defaults["adherence"] = int(info["ADHERENCE"])
            except (ValueError, KeyError):
                defaults["adherence"] = 0

            bus, created = Bus.objects.get_or_create(id=defaults["id"], defaults=defaults)

            if not created:
                stale.discard(bus.id)
                current = defaults["status_time"] > bus.status_time
                updated = bus.update_maybe(**defaults)

                if updated and current:
                    bus.save()
                    push.append(bus.to_json())
            else:
                push.append(bus.to_json())

        # Notify
        try:
            # Push new updates
            if push:
                logger.info("Publishing %s bus updates to queue %s" % (len(push), queue))
                socket.publish(queue, push)

            # Notify of staleness
            if stale:
                stale = list(stale)
                logger.info("Publishing %s stale bus notices to %s/stale" % (len(stale), queue))
                socket.publish("%s/stale" % queue, stale)
                Bus.objects.filter(id__in=stale).update(set__is_stale=True)

        except:
            logger.exception("Can't push realtime MARTA notifications")
    except:
        logger.exception("Failed to pull MARTA realtime data")
    else:
        logger.info("MARTA realtime pull finished")
def publish():
    jug = Juggernaut()
    jug.publish('channel', 'The message')
Beispiel #7
0
def publish():
    jug = Juggernaut()
    jug.publish('channel', 'The message')