mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-06 14:24:58 -04:00
Convert appservice, group server, profile and more databases to async (#8066)
This commit is contained in:
parent
9d1e4942ab
commit
a3a59bab7b
9 changed files with 91 additions and 116 deletions
|
@ -18,8 +18,6 @@ import re
|
|||
|
||||
from canonicaljson import json
|
||||
|
||||
from twisted.internet import defer
|
||||
|
||||
from synapse.appservice import AppServiceTransaction
|
||||
from synapse.config.appservice import load_appservices
|
||||
from synapse.storage._base import SQLBaseStore, db_to_json
|
||||
|
@ -124,17 +122,15 @@ class ApplicationServiceStore(ApplicationServiceWorkerStore):
|
|||
class ApplicationServiceTransactionWorkerStore(
|
||||
ApplicationServiceWorkerStore, EventsWorkerStore
|
||||
):
|
||||
@defer.inlineCallbacks
|
||||
def get_appservices_by_state(self, state):
|
||||
async def get_appservices_by_state(self, state):
|
||||
"""Get a list of application services based on their state.
|
||||
|
||||
Args:
|
||||
state(ApplicationServiceState): The state to filter on.
|
||||
Returns:
|
||||
A Deferred which resolves to a list of ApplicationServices, which
|
||||
may be empty.
|
||||
A list of ApplicationServices, which may be empty.
|
||||
"""
|
||||
results = yield self.db_pool.simple_select_list(
|
||||
results = await self.db_pool.simple_select_list(
|
||||
"application_services_state", {"state": state}, ["as_id"]
|
||||
)
|
||||
# NB: This assumes this class is linked with ApplicationServiceStore
|
||||
|
@ -147,16 +143,15 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
services.append(service)
|
||||
return services
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_appservice_state(self, service):
|
||||
async def get_appservice_state(self, service):
|
||||
"""Get the application service state.
|
||||
|
||||
Args:
|
||||
service(ApplicationService): The service whose state to set.
|
||||
Returns:
|
||||
A Deferred which resolves to ApplicationServiceState.
|
||||
An ApplicationServiceState.
|
||||
"""
|
||||
result = yield self.db_pool.simple_select_one(
|
||||
result = await self.db_pool.simple_select_one(
|
||||
"application_services_state",
|
||||
{"as_id": service.id},
|
||||
["state"],
|
||||
|
@ -270,16 +265,14 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
"complete_appservice_txn", _complete_appservice_txn
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_oldest_unsent_txn(self, service):
|
||||
async def get_oldest_unsent_txn(self, service):
|
||||
"""Get the oldest transaction which has not been sent for this
|
||||
service.
|
||||
|
||||
Args:
|
||||
service(ApplicationService): The app service to get the oldest txn.
|
||||
Returns:
|
||||
A Deferred which resolves to an AppServiceTransaction or
|
||||
None.
|
||||
An AppServiceTransaction or None.
|
||||
"""
|
||||
|
||||
def _get_oldest_unsent_txn(txn):
|
||||
|
@ -298,7 +291,7 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
|
||||
return entry
|
||||
|
||||
entry = yield self.db_pool.runInteraction(
|
||||
entry = await self.db_pool.runInteraction(
|
||||
"get_oldest_unsent_appservice_txn", _get_oldest_unsent_txn
|
||||
)
|
||||
|
||||
|
@ -307,7 +300,7 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
|
||||
event_ids = db_to_json(entry["event_ids"])
|
||||
|
||||
events = yield self.get_events_as_list(event_ids)
|
||||
events = await self.get_events_as_list(event_ids)
|
||||
|
||||
return AppServiceTransaction(service=service, id=entry["txn_id"], events=events)
|
||||
|
||||
|
@ -332,8 +325,7 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
"set_appservice_last_pos", set_appservice_last_pos_txn
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_new_events_for_appservice(self, current_id, limit):
|
||||
async def get_new_events_for_appservice(self, current_id, limit):
|
||||
"""Get all new evnets"""
|
||||
|
||||
def get_new_events_for_appservice_txn(txn):
|
||||
|
@ -357,11 +349,11 @@ class ApplicationServiceTransactionWorkerStore(
|
|||
|
||||
return upper_bound, [row[1] for row in rows]
|
||||
|
||||
upper_bound, event_ids = yield self.db_pool.runInteraction(
|
||||
upper_bound, event_ids = await self.db_pool.runInteraction(
|
||||
"get_new_events_for_appservice", get_new_events_for_appservice_txn
|
||||
)
|
||||
|
||||
events = yield self.get_events_as_list(event_ids)
|
||||
events = await self.get_events_as_list(event_ids)
|
||||
|
||||
return upper_bound, events
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue