Пример #1
0
def load_period_times():
    pt = []
    with db.atomic():
        for i in Period.select():
            pt.append(i.start_time)
            pt.append(i.end_time)
    with pt_lock:
        period_times[:] = pt
    cr = cron.Cron(get_cron())
    cr.start()
Пример #2
0
    def __init__(self, raw, archiver):

        self.destinations = []
        st = raw
        self.full_cycle = 7
        self.archiver = archiver
        self.used_types = set()

        while st:
            if st[0] != '<':
                raise DestinationSyntaxError, 'starting "<" missing'

            try:
                pos = st.index('>')
            except ValueError:
                raise DestinationSyntaxError, 'a ">" is missing'

            selector = st[1:pos]
            st = st[pos + 1:]

            pos = st.find('<')
            if pos >= 0:
                target = st[:pos]
                st = st[pos:]
            else:
                target = st
                st = ''

            typ, period = selector.split('=', 1)

            try:
                if typ.lower() == 'none':
                    typ = 'none'
                else:
                    typ = self.archiver.types[typ.lower()]
            except KeyError:
                raise DestinationSyntaxError, 'type "%s" unknown' % (typ, )

            self.used_types.add(typ.lower())

            #print "SELECTOR<%s=%s>%s" % (typ,period,target )
            #print "CARRY=%s" % st
            period = cron.Cron(period)
            if period.weekdivisor != None:
                self.full_cycle = max(self.full_cycle, period.weekdivisor * 7)
            if period.months:
                self.full_cycle = max(self.full_cycle, 63)

            self.destinations.append((typ, period, target))
Пример #3
0
def test_cron_daemon():
    dct = {}

    def cmd():
        dct['it works!'] = True

    daemon = cron.Cron()
    daemon.add('@reboot', cmd)
    daemon.start()
    for i in range(60):
        time.sleep(1)
        if 'it works!' in dct:
            break
    assert dct.get('it works!', False)
    daemon.stop()
Пример #4
0
import datetime
import cron
q = [((datetime.datetime.now() + datetime.timedelta(seconds=5)).time(),
      lambda: print('abc')),
     ((datetime.datetime.now() + datetime.timedelta(seconds=10)).time(),
      lambda: print('def'))]
c = cron.Cron(q)
c.start()
import time
time.sleep(100)
Пример #5
0
        <p>Pour vous inscrire, envoyez un message privé à l'utilisateur ConfiBot qui se trouve sur notre <a href="https://discord.h25.io">serveur Discord</a>, qui vous répondra avec un token secret et l'équipe dont vous faites partie.</p>
        <p>ConfiBot vous ajoute automatiquement au channel privé pour discuter avec le reste de votre équipe, par exemple <i>#configame-orange</i>.</p>
        <h2>Détails techniques</h2>
        <p>Pour placer votre pion, vous pouvez utiliser l'URL suivante : <pre>http://configame.h25.io/setPosition?x={x pion}&y={y pion}&token={votre token secret}</pre><b>Il n'est possible de se déplacer que de 20 unités à la fois</b> (comptées en <a href="https://fr.wikipedia.org/wiki/Distance_de_Manhattan">distance de Manhattan</a>). Si vous souhaitez vous déplacer à plus de 20 unités de distance, vous pouvez passer un tour mais vous ne recevrez aucun point pendant ce tour.</p>
        <p>Chaque tour dure une minute, et vous ne connaissez pas les positions des autres au tour actuel. Cependant, l'URL <pre>http://configame.h25.io/getPreviousTick</pre> vous permettra de récupérer les positions de chacun au tour précédent.</p>
        <p>Si vous avez des difficultés à jouer ou à automatiser vos requêtes, n'hésitez pas à demander à votre équipe dans le channel dédié !</p>
        <p>Le jeu est seulement actif pendant les ConfiStreams, le serveur ne répondra généralement pas aux requêtes en dehors des horaires de stream.</p>
    </body>
    <script>
        setTimeout(function(){
            window.location.reload(1);
        }, 30000);
    </script>
</html>'''


@app.after_request
def add_header(r):
    r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
    r.headers["Pragma"] = "no-cache"
    r.headers["Expires"] = "0"
    r.headers['Cache-Control'] = 'public, max-age=0'
    return r


daemon = cron.Cron()
daemon.add('* * * * *', doTick)
daemon.start()

app.run('0.0.0.0', port=80, debug=False, threaded=True)
Пример #6
0
def test_cron_stop():
    daemon = cron.Cron()
    daemon.start()
    daemon.stop()
    assert not daemon.thread.isAlive()