Esempio n. 1
0
 def __init__(self,
              store,
              logger=None,
              task_paths=None,
              schedule_periodic=False,
              backlog=1,
              max_tasks=0,
              name=None,
              poll_timeout=None):
     super(TaskBackend,
           self).__init__(store._loop,
                          many_times_events=('task_queued', 'task_started',
                                             'task_done'))
     self.store = store
     self._logger = logger
     self.name = name
     self.task_paths = task_paths
     self.backlog = backlog
     self.max_tasks = max_tasks
     self.poll_timeout = max(poll_timeout or 0, 2)
     self.concurrent_tasks = set()
     self.processed = 0
     self.schedule_periodic = schedule_periodic
     self.next_run = time.time()
     self.callbacks = {}
     self.models = odm.Mapper(self.store)
     self.models.register(Task)
     self._pubsub = self.get_pubsub()
Esempio n. 2
0
 def _create_mapper(self, app):
     # Create the object data mapper
     config = app.config
     odm = config['ODM']
     default_address = None
     if not odm:
         from pulsar.apps.data import odm
         config['ODM'] = odm
         default_address = DEFAULT_ADDRESS
     self.html_crud_routers = odm.ModelDictionary()
     self.api_crud_routers = odm.ModelDictionary()
     datastore = config['DATASTORE'] or {}
     address = datastore.get('')
     if not address:
         if default_address:
             address = default_address
             config['DATASTORE'][''] = address
         else:
             raise ValueError('Default datastore not set')
     mapper = odm.Mapper(address)
     self.set_search_engine(app, mapper)
     # don't need lux has we know it does not have any model
     extensions = config['EXTENSIONS'][1:]
     mapper.register_applications(extensions, stores=datastore)
     return mapper
Esempio n. 3
0
 def setUpClass(cls):
     store = cls.create_store()
     yield store.create_database()
     cls.models = odm.Mapper(store)
     cls.models.register(User)
     yield cls.models.create_tables()
     yield cls.populate()
Esempio n. 4
0
 def mapper(cls, *models, **kw):
     '''Create a mapper for models'''
     mapper = odm.Mapper(cls.store)
     for model in models:
         mapper.register(model)
     return mapper
Esempio n. 5
0
from pulsar.utils.security import gen_unique_id
from pulsar.apps.data import odm
from pulsar.apps.tasks import Task

models = odm.Mapper('couchdb://127.0.0.1:5984/test')
store = models.default_store
try:
    ok = store.delete_database()
except Exception:
    pass
ok = store.create_database()

models.register(Task)
ok = models.create_tables()

tasks = models.task
task1 = tasks.create(name='bla', id=gen_unique_id())
assert task1.name == 'bla'
task2 = tasks.create(name='foo', id=gen_unique_id())
assert task2.name == 'foo'
task3 = tasks.create(name='foo', id=gen_unique_id())
assert task3.name == 'foo'

objs = store.table_info(Task)

ok = models.drop_tables()