Return JobId from push

This commit is contained in:
asonix 2023-08-13 19:52:27 -05:00
parent 5d4486fdf4
commit e4e93cddf9
2 changed files with 5 additions and 5 deletions

View file

@ -303,7 +303,7 @@ impl JobId {
#[async_trait::async_trait(?Send)] #[async_trait::async_trait(?Send)]
pub(crate) trait QueueRepo: BaseRepo { pub(crate) trait QueueRepo: BaseRepo {
async fn push(&self, queue: &'static str, job: Self::Bytes) -> Result<(), RepoError>; async fn push(&self, queue: &'static str, job: Self::Bytes) -> Result<JobId, RepoError>;
async fn pop(&self, queue: &'static str) -> Result<(JobId, Self::Bytes), RepoError>; async fn pop(&self, queue: &'static str) -> Result<(JobId, Self::Bytes), RepoError>;
@ -317,7 +317,7 @@ impl<T> QueueRepo for actix_web::web::Data<T>
where where
T: QueueRepo, T: QueueRepo,
{ {
async fn push(&self, queue: &'static str, job: Self::Bytes) -> Result<(), RepoError> { async fn push(&self, queue: &'static str, job: Self::Bytes) -> Result<JobId, RepoError> {
T::push(self, queue, job).await T::push(self, queue, job).await
} }

View file

@ -663,7 +663,7 @@ fn job_key(queue: &'static str, job_id: JobId) -> Arc<[u8]> {
#[async_trait::async_trait(?Send)] #[async_trait::async_trait(?Send)]
impl QueueRepo for SledRepo { impl QueueRepo for SledRepo {
#[tracing::instrument(skip(self, job), fields(job = %String::from_utf8_lossy(&job)))] #[tracing::instrument(skip(self, job), fields(job = %String::from_utf8_lossy(&job)))]
async fn push(&self, queue_name: &'static str, job: Self::Bytes) -> Result<(), RepoError> { async fn push(&self, queue_name: &'static str, job: Self::Bytes) -> Result<JobId, RepoError> {
let metrics_guard = PushMetricsGuard::guard(queue_name); let metrics_guard = PushMetricsGuard::guard(queue_name);
let id = JobId::gen(); let id = JobId::gen();
@ -692,7 +692,7 @@ impl QueueRepo for SledRepo {
if let Some(notifier) = self.queue_notifier.read().unwrap().get(&queue_name) { if let Some(notifier) = self.queue_notifier.read().unwrap().get(&queue_name) {
notifier.notify_one(); notifier.notify_one();
metrics_guard.disarm(); metrics_guard.disarm();
return Ok(()); return Ok(id);
} }
self.queue_notifier self.queue_notifier
@ -704,7 +704,7 @@ impl QueueRepo for SledRepo {
metrics_guard.disarm(); metrics_guard.disarm();
Ok(()) Ok(id)
} }
#[tracing::instrument(skip(self))] #[tracing::instrument(skip(self))]