From d7edb9622e4353708dba37850956596d6807fd5c Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Tue, 21 Sep 2010 16:07:56 +0200 Subject: [PATCH] Rework some price fetching stuff to be more elegant --- eos | 2 +- service/market.py | 25 ++++++++----------------- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/eos b/eos index 99f082f82..5741911f0 160000 --- a/eos +++ b/eos @@ -1 +1 @@ -Subproject commit 99f082f82bfc18900839db09772c6c8301ab4d13 +Subproject commit 5741911f0f3270de748b46f09e76a3aa9e9452ae diff --git a/service/market.py b/service/market.py index faee39f40..f052a6597 100644 --- a/service/market.py +++ b/service/market.py @@ -50,7 +50,7 @@ class PriceWorkerThread(threading.Thread): if len(requests) > 0: eos.types.Price.fetchPrices(*requests) - callback() + wx.CallAfter(callback) def trigger(self, prices, callbacks): @@ -244,9 +244,7 @@ class Market(): return l def getPrices(self, typeIDs, callback): - fetch = set() - all = [] - new = [] + requests = [] for typeID in typeIDs: price = self.priceCache.get(typeID) if price is None: @@ -254,22 +252,15 @@ class Market(): price = eos.db.getPrice(typeID) except NoResultFound: price = eos.types.Price(typeID) - new.append(price) + eos.db.saveddata_session.add(price) + requests.append(price) self.priceCache[typeID] = price - all.append(price) - if not price.isValid and not self.priceWorkerThread.isScheduled(price): - fetch.add(price) - - def dbAdd(): - for price in new: - eos.db.saveddata_session.add(price) - eos.db.saveddata_session.commit() - eos.db.saveddata_session.flush() + requests.append(price) def cb(): - wx.CallAfter(callback, all) - wx.CallAfter(dbAdd) + callback(requests) + eos.db.commit() - self.priceWorkerThread.trigger(fetch, cb) + self.priceWorkerThread.trigger(requests, cb)