Hello Web2py , happy new year!

I am trying to use DAL outside in a script file , here is the code :

def generate_dbs(db_name,db_path):
    #casesdb = DAL( 'mysql://root@localhost/' + db_name, folder = db_path )
    #casesdb.define_table( 'email_data', migrate = True, *email_halfschema )
    #casesdb.define_table( 'loosefile_data', migrate = True,
*file_halfschema )
    #casesdb.define_table( 'attach_data', migrate = True, *file_halfschema )
    #casesdb.define_table( 'meta_data', migrate = True, *metadatas_schema )
    #return casesdb
    casesdb = DAL('mysql://root@localhost/' + db_name, folder = db_path)
    casesdb.define_table('files_data', migrate = False, *files_schema)
    casesdb.define_table('files_meta_data', migrate = False,
*files_meta_schema)
    casesdb.define_table('email_meta_data', migrate = False,
*email_meta_schema)
    return casesdb

def pooler(fpath, db_name, db_path, processes=4):
    lst = recursive_flist(fpath)
    print lst
    databases = [generate_dbs(db_name,db_path) for i in range(1,processes)]
    print databases
    processor_pool = Pool(processes=processes)
    print "Pooling Ready"
    matcher_db_lst =list(enumerate(zip(lst,cycle(databases))))
    #this gets something like this
[1,["path1",dbcon1],2,["path2",dbcon2],...,21,["path21",dbcon1]]
    return processor_pool.map(generated_edoc_pooling ,matcher_db_lst)


Here is the error :

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib64/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in
_handle_tasks
    put(task)
PicklingError: Can't pickle <type 'NoneType'>: attribute lookup
__builtin__.NoneType failed


The problem is that , there are too many Nones in DAL's database object and
cant be seralized into pickle. how can i solve this?
What i want is to pool only 4 db connections however large the list is.


Thanks

Phyo.

Reply via email to