mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 11:36:05 +00:00
remove running state
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n\t\t\tSELECT\n\t\t\t\tpayout_periods.period,\n\t\t\t\tpayout_periods.raw_actual_aditude_revenue_usd,\n\t\t\t\tpayout_periods.revenue_adjustments AS \"revenue_adjustments: Json<Vec<RevenueAdjustment>>\",\n\t\t\t\tactive_run.payload AS \"active_run_payload: Json<PayoutRunPayload>\",\n\t\t\t\tactive_run.execute_at AS active_run_execute_at,\n\t\t\t\tEXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM payout_runs\n\t\t\t\t\tWHERE payout_runs.period = payout_periods.period\n\t\t\t\t\t\tAND payout_runs.status = 'succeeded'\n\t\t\t\t) AS \"has_succeeded_run!\"\n\t\t\tFROM payout_periods\n\t\t\tLEFT JOIN payout_runs active_run\n\t\t\t\tON active_run.period = payout_periods.period\n\t\t\t\tAND active_run.status IN ('scheduled', 'running')\n\t\t\tWHERE payout_periods.period = ANY($1)\n\t\t\t",
|
||||
"query": "\n\t\t\tSELECT\n\t\t\t\tpayout_periods.period,\n\t\t\t\tpayout_periods.raw_actual_aditude_revenue_usd,\n\t\t\t\tpayout_periods.revenue_adjustments AS \"revenue_adjustments: Json<Vec<RevenueAdjustment>>\",\n\t\t\t\tactive_run.payload AS \"active_run_payload: Json<PayoutRunPayload>\",\n\t\t\t\tactive_run.execute_at AS active_run_execute_at,\n\t\t\t\tEXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM payout_runs\n\t\t\t\t\tWHERE payout_runs.period = payout_periods.period\n\t\t\t\t\t\tAND payout_runs.status = 'succeeded'\n\t\t\t\t) AS \"has_succeeded_run!\"\n\t\t\tFROM payout_periods\n\t\t\tLEFT JOIN payout_runs active_run\n\t\t\t\tON active_run.period = payout_periods.period\n\t\t\t\tAND active_run.status = 'scheduled'\n\t\t\tWHERE payout_periods.period = ANY($1)\n\t\t\t",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
@@ -48,5 +48,5 @@
|
||||
null
|
||||
]
|
||||
},
|
||||
"hash": "0f8bb9a3ade9d28ee2d91e10b3d06a03bccfe57a196c62b27b5334525f32e0ca"
|
||||
"hash": "24871c7ee6d92749a6c04332258057ea712c3db9cfeb14efc79c8b44996ff1ff"
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"db_name": "PostgreSQL",
|
||||
"query": "\n SELECT\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE status IN ('scheduled', 'running')\n ) AS \"has_active_run!\",\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE period = $1\n AND status = 'succeeded'\n ) AS \"has_succeeded_run!\"\n ",
|
||||
"query": "\n SELECT\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE status = 'scheduled'\n ) AS \"has_active_run!\",\n EXISTS (\n SELECT 1\n FROM payout_runs\n WHERE period = $1\n AND status = 'succeeded'\n ) AS \"has_succeeded_run!\"\n ",
|
||||
"describe": {
|
||||
"columns": [
|
||||
{
|
||||
@@ -24,5 +24,5 @@
|
||||
null
|
||||
]
|
||||
},
|
||||
"hash": "c4ebaf1d3b32250101b0f31bc6decb7d62a7e7160c6aa95cea71ff11ea43c973"
|
||||
"hash": "b513ecd0e29533aa390ec88cdfe59dfe2e5b85ee2e17744eae4e0b59ce7cb39c"
|
||||
}
|
||||
@@ -41,7 +41,7 @@ CREATE TABLE payout_runs (
|
||||
|
||||
CREATE UNIQUE INDEX payout_runs_active_period
|
||||
ON payout_runs (period)
|
||||
WHERE status IN ('scheduled', 'running');
|
||||
WHERE status = 'scheduled';
|
||||
|
||||
CREATE UNIQUE INDEX payout_runs_succeeded_period
|
||||
ON payout_runs (period)
|
||||
|
||||
@@ -35,4 +35,4 @@ DROP INDEX payout_runs_active_period;
|
||||
|
||||
CREATE UNIQUE INDEX payout_runs_single_active
|
||||
ON payout_runs ((TRUE))
|
||||
WHERE status IN ('scheduled', 'running');
|
||||
WHERE status = 'scheduled';
|
||||
|
||||
@@ -51,7 +51,7 @@ impl DBPayoutPeriod {
|
||||
FROM payout_periods
|
||||
LEFT JOIN payout_runs active_run
|
||||
ON active_run.period = payout_periods.period
|
||||
AND active_run.status IN ('scheduled', 'running')
|
||||
AND active_run.status = 'scheduled'
|
||||
WHERE payout_periods.period = ANY($1)
|
||||
"#,
|
||||
periods,
|
||||
|
||||
@@ -21,7 +21,6 @@ use crate::queue::payout_run::PayoutRunPayload;
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum PayoutRunStatus {
|
||||
Scheduled,
|
||||
Running,
|
||||
Cancelled,
|
||||
Failed,
|
||||
Succeeded,
|
||||
|
||||
@@ -327,7 +327,7 @@ pub async fn start_run(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM payout_runs
|
||||
WHERE status IN ('scheduled', 'running')
|
||||
WHERE status = 'scheduled'
|
||||
) AS "has_active_run!",
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
@@ -343,7 +343,7 @@ pub async fn start_run(
|
||||
.wrap_internal_err("checking payout period run status")?;
|
||||
if run_state.has_active_run {
|
||||
return Err(ApiError::Conflict(eyre::eyre!(
|
||||
"another payout run is already scheduled or running",
|
||||
"another payout run is already scheduled",
|
||||
)));
|
||||
}
|
||||
if run_state.has_succeeded_run {
|
||||
@@ -419,7 +419,7 @@ pub async fn start_run(
|
||||
&& error.constraint() == Some("payout_runs_single_active")
|
||||
{
|
||||
return Err(ApiError::Conflict(eyre::eyre!(
|
||||
"another payout run is already scheduled or running",
|
||||
"another payout run is already scheduled",
|
||||
)));
|
||||
}
|
||||
create_run_result.wrap_internal_err("creating scheduled payout run")?;
|
||||
|
||||
@@ -207,7 +207,7 @@ async fn payout_run_lineage_and_active_run_constraints() {
|
||||
insert_run(pool, 1002, periods[1], "scheduled")
|
||||
.await
|
||||
.unwrap();
|
||||
let second_active = insert_run(pool, 1003, periods[2], "running")
|
||||
let second_active = insert_run(pool, 1003, periods[2], "scheduled")
|
||||
.await
|
||||
.unwrap_err();
|
||||
assert_constraint(second_active, "payout_runs_single_active");
|
||||
|
||||
Reference in New Issue
Block a user