예제 #1
0
    def test_100_basic(self):
        handler = SnowflakeServiceHandler(0, 0)
        ret1 = handler.get_id('me')
        ret2 = handler.get_id('me')

        self.assertGreater(ret1, 0)
        self.assertGreater(ret2, 0)
        self.assertGreater(ret2, ret1)
예제 #2
0
    def test_102_long_run(self):
        handler = SnowflakeServiceHandler(0, 0)
        ret = set()
        total_runs = 20000

        for i in xrange(total_runs):
            ret.add(handler.get_id('me'))

        self.assertFalse(None in ret)
        self.assertEquals(len(ret), total_runs)
예제 #3
0
    def test_101_multiple(self):
        handler1 = SnowflakeServiceHandler(0, 0)
        handler2 = SnowflakeServiceHandler(1, 0)
        ret1 = handler1.get_id('me')
        ret2 = handler2.get_id('me')

        self.assertGreater(ret1, 0)
        self.assertGreater(ret2, 0)
        self.assertNotEqual(ret2, ret1)
예제 #4
0
def main():
    if len(sys.argv) < 2:
        print 'Usage: %s config_file' % sys.argv[0]
        sys.exit()

    log.startLogging(sys.stdout)

    Config.init(sys.argv[1])

    if Config.debug:
        log.startLogging(sys.stdout)
    else:
        log.startLogging(DailyLogFile.fromFullPath(Config.get('log.file')))

    handler = SnowflakeServiceHandler(Config.getint('worker.id'),
                                      Config.getint('datacenter.id'))
    processor = SnowflakeService.Processor(handler)
    server = TTwisted.ThriftServerFactory(
        processor=processor,
        iprot_factory=TBinaryProtocol.TBinaryProtocolFactory())
    reactor.listenTCP(Config.getint('port', default=9999),
                      server,
                      interface=Config.get('listen', default="0.0.0.0"))
    reactor.run()