Changeset 1126


Ignore:
Timestamp:
19.01.2016 10:04:22 (4 years ago)
Author:
klaus
Message:

working fix of threading problem with stations DB

Location:
SHX/trunk/SeismicHandler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/commands/meta.py

    r1125 r1126  
    1010    traces_from_list, get_meta_status, META_STATUS_LOCATION, \ 
    1111    META_STATUS_COMPLETE, META_STATUS_EMPTY 
    12 from SeismicHandler.modules.stations import ChannelMeta, Stations, Stations1 
     12from SeismicHandler.modules.stations import ChannelMeta, Stations, Stations1,\ 
     13    triggerDatabaseReload 
    1314from SeismicHandler.config import Settings 
    1415from SeismicHandler.basics import timeit 
     
    196197            self.stations.add(meta, replace=True, local=True) 
    197198        # reread DB due to bug in Db interface 
    198         self.stations.read( clear=True ) 
     199        triggerDatabaseReload() 
     200        #self.stations.read( clear=True ) 
    199201        for trc in traces: 
    200202            trc.set_info( 'METASTATUS', get_meta_status( trc ) ) 
  • SHX/trunk/SeismicHandler/modules/stations.py

    r1125 r1126  
    55#    http://www.seismic-handler.org/portal/wiki/Shx/LicenseTerms 
    66 
     7import copy 
    78import sqlalchemy as sa 
    89import sqlalchemy.orm as orm 
     
    234235 
    235236    dbsessions = {} 
     237     
     238    reloadRequested = False 
    236239 
    237240    def __init__(self): 
     
    250253        Init / refresh station information. 
    251254        """ 
     255        self.reloadRequested = False 
    252256        # read only information 
    253257        data = [] 
     
    315319        code or a list/tuple of channel and UTCDateTime information. 
    316320        """ 
     321        # reload data base if requested 
     322        if self.reloadRequested: 
     323            print "dbg: perform requested update on Stations" 
     324            self.read() 
     325 
    317326        try: 
    318327            code, date = codedate 
     
    352361        if not isinstance(station, ChannelMeta): 
    353362            raise ValueError("Wrong data type") 
     363 
     364        # reload data base if requested 
     365        if self.reloadRequested: 
     366            print "dbg: perform requested update on Stations" 
     367            self.read() 
    354368 
    355369        session = self.dbsessions[self.dbreadwrite] 
     
    428442 
    429443    dbsessions = {} 
     444     
     445    reloadRequested = False 
    430446 
    431447    def __init__(self): 
     
    444460        Init / refresh station information. 
    445461        """ 
     462        self.reloadRequested = False 
    446463        # read only information 
    447464        data = [] 
     
    509526        code or a list/tuple of channel and UTCDateTime information. 
    510527        """ 
     528        # reload data base if requested 
     529        if self.reloadRequested: 
     530            print "dbg: perform requested update on Stations1" 
     531            self.read() 
     532 
    511533        try: 
    512534            code, date = codedate 
     
    546568        if not isinstance(station, ChannelMeta): 
    547569            raise ValueError("Wrong data type") 
     570 
     571        # reload data base if requested 
     572        if self.reloadRequested: 
     573            print "dbg: perform requested update on Stations1" 
     574            self.read() 
    548575 
    549576        session = self.dbsessions[self.dbreadwrite] 
     
    612639 
    613640 
     641 
    614642def resolveStations(stations): 
    615643    """ 
     
    650678    return 
    651679 
     680def triggerDatabaseReload(): 
     681    "Workaround. To be optimized." 
     682    print "dbg: DB reload triggered" 
     683    Stations().reloadRequested = True 
     684    Stations1().reloadRequested = True 
     685 
    652686 
    653687if __name__ == "__main__": 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1119 r1126  
    1212from obspy.core.stream import Stream, Trace 
    1313from SeismicHandler.config import Settings, set_dsptrcs, set_tottrcs 
    14 from SeismicHandler.modules.stations import Stations 
     14from SeismicHandler.modules.stations import Stations, Stations1 
    1515 
    1616 
     
    128128    def getMetaStatus( self, trace ): 
    129129        "Returns 0, 1 or 2 depending on metadata status." 
    130         stations = Stations() 
     130        stations = Stations1() 
    131131        sname = "%s.%s.%s.%s" % (trace.stats.network, trace.stats.station, 
    132132            trace.stats.location, trace.stats.channel) 
Note: See TracChangeset for help on using the changeset viewer.