Skip to content
Snippets Groups Projects
Commit 0e1093e3 authored by Antoine Lambert's avatar Antoine Lambert
Browse files

pattern: Add first_visits_queue_prefix parameter to Lister constructor

It enables to declare a lister whose first visits of listed origins must
be scheduled with high priority.

Related to swh-scheduler#4687.
parent 7609ebf7
No related branches found
No related tags found
No related merge requests found
......@@ -115,6 +115,7 @@ class Lister(Generic[StateType, PageType]):
enable_origins: bool = True,
with_github_session: bool = False,
record_batch_size: int = 1000,
first_visits_queue_prefix: Optional[str] = None,
):
if not self.LISTER_NAME:
raise ValueError("Must set the LISTER_NAME attribute on Lister classes")
......@@ -138,6 +139,7 @@ class Lister(Generic[StateType, PageType]):
self.instance = instance
else:
self.instance = urlparse(self.url).netloc
self.first_visits_queue_prefix = first_visits_queue_prefix
self.scheduler = scheduler
......@@ -265,6 +267,7 @@ class Lister(Generic[StateType, PageType]):
self.lister_obj = self.scheduler.get_or_create_lister(
name=self.LISTER_NAME,
instance_name=self.instance,
first_visits_queue_prefix=self.first_visits_queue_prefix,
)
return self.state_from_dict(copy.deepcopy(self.lister_obj.current_state))
......
......@@ -189,6 +189,7 @@ def test_stateless_instantiation(swh_scheduler):
scheduler=swh_scheduler,
url="https://example.com",
instance="example.com",
first_visits_queue_prefix="test",
)
# check the lister was registered in the scheduler backend
......@@ -197,6 +198,7 @@ def test_stateless_instantiation(swh_scheduler):
)
assert stored_lister == lister.lister_obj
assert stored_lister.current_state == {}
assert stored_lister.first_visits_queue_prefix == "test"
assert lister.state is None
with pytest.raises(NotImplementedError):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment