mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 17:58:55 +00:00
add execution time to job queries
This commit is contained in:
1 parent
54af3d301c
commit
f754c6e41f
6 files changed
+67
-31
No files matched your search
Generated
+1
@@ -23,6 +23,7 @@
|
||||
<w>retryably</w>
|
||||
<w>scrollback</w>
|
||||
<w>softvc</w>
|
||||
<w>sql's</w>
|
||||
<w>symphonia</w>
|
||||
<w>tacotron</w>
|
||||
<w>techcrunch</w>
|
||||
|
||||
@@ -2722,6 +2722,16 @@
|
||||
},
|
||||
"query": "\nUPDATE user_sessions\nSET deleted_at = CURRENT_TIMESTAMP()\nWHERE\n token = ?\n AND deleted_at IS NULL\n "
|
||||
},
|
||||
"2177f29265040bda6bb4418b521679fcbc372a73620415f4812c45fbb03d5933": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 4
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_download_jobs\nSET\n status = \"complete_failure\",\n on_success_downloaded_entity_token = ?,\n on_success_downloaded_entity_type = ?,\n failure_reason = NULL,\n success_execution_millis = ?,\n retry_at = NULL\nWHERE id = ?\n "
|
||||
},
|
||||
"218b3fe667b34bfa158bb7d4f600a3b91a22460adf566dcdf6ce540006e6c684": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
@@ -3632,6 +3642,16 @@
|
||||
},
|
||||
"query": "\nUPDATE\n ip_address_bans\nSET\n mod_user_token = ?,\n deleted_at = NULL\nWHERE\n ip_address = ?\nLIMIT 1\n "
|
||||
},
|
||||
"348d5965a6e4038cbe00acdf0ad1eb1d26dc85d70834c6c86f802daa5a2d7794": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 4
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_inference_jobs\nSET\n status = \"complete_success\",\n on_success_result_entity_type = ?,\n on_success_result_entity_token = ?,\n failure_reason = NULL,\n internal_debugging_failure_reason = NULL,\n success_execution_millis = ?,\n retry_at = NULL,\n successfully_completed_at = NOW()\nWHERE id = ?\n "
|
||||
},
|
||||
"359be6ce263afd62fc748c14c06c62ded5ed59fc0a9d1186967028af400d7d61": {
|
||||
"describe": {
|
||||
"columns": [
|
||||
@@ -3927,16 +3947,6 @@
|
||||
},
|
||||
"query": "\nUPDATE generic_inference_jobs\nSET\n status = ?,\n failure_reason = ?,\n internal_debugging_failure_reason = ?,\n retry_at = NOW() + interval 2 minute\nWHERE id = ?\n "
|
||||
},
|
||||
"3e0c1b88d7c4f1b4d754ee2c6e32b99e72ac810d0da2a7e57fbf2aa8e9a9939a": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 3
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_inference_jobs\nSET\n status = \"complete_success\",\n on_success_result_entity_type = ?,\n on_success_result_entity_token = ?,\n failure_reason = NULL,\n internal_debugging_failure_reason = NULL,\n retry_at = NULL,\n successfully_completed_at = NOW()\nWHERE id = ?\n "
|
||||
},
|
||||
"40a3301e9a3201e74d49b6b339f67291e2ae22d315188401708609ac2d28a68c": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
@@ -9354,16 +9364,6 @@
|
||||
},
|
||||
"query": "\nSELECT *\nFROM tts_model_upload_jobs\nWHERE\n (\n status IN (\"pending\", \"attempt_failed\")\n )\n AND\n (\n retry_at IS NULL\n OR\n retry_at < CURRENT_TIMESTAMP\n )\n LIMIT ?\n "
|
||||
},
|
||||
"7b2cbcc19549a9fa4882c57a52ad39a3f7fd8f65e31f487553cea2158b4e7208": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 3
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_download_jobs\nSET\n status = \"complete_success\",\n on_success_downloaded_entity_token = ?,\n on_success_downloaded_entity_type = ?,\n failure_reason = NULL,\n retry_at = NULL,\n successfully_completed_at = NOW()\nWHERE id = ?\n "
|
||||
},
|
||||
"7cd0ad5d7b9a2c393f799beadc1e0a6bc85d952e07a1b82a52115b99be40ff6d": {
|
||||
"describe": {
|
||||
"columns": [
|
||||
@@ -10459,16 +10459,6 @@
|
||||
},
|
||||
"query": "\nINSERT INTO stripe_webhook_event_logs\nSET\n stripe_event_id = ?,\n stripe_event_type = ?,\n maybe_stripe_event_entity_id = ?,\n maybe_stripe_customer_id = ?,\n stripe_event_created_at = ?,\n stripe_is_production = ?,\n maybe_user_token = ?,\n action_was_taken = ?,\n should_ignore_retry = ?\n "
|
||||
},
|
||||
"8951eb0c858fc803312db719820e8a2ae1446a9c741dc8a6874b8ae213793cfa": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 3
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_download_jobs\nSET\n status = \"complete_failure\",\n on_success_downloaded_entity_token = ?,\n on_success_downloaded_entity_type = ?,\n failure_reason = NULL,\n retry_at = NULL\nWHERE id = ?\n "
|
||||
},
|
||||
"89b66d91d1f2cd5c9871671b21a90e77d9041572a90cc6be6dd49845424677fa": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
@@ -11072,6 +11062,16 @@
|
||||
},
|
||||
"query": "\nSELECT\n vc.token as `token: tokens::voice_conversion::model::VoiceConversionModelToken`,\n vc.model_type as `model_type: enums::by_table::voice_conversion_models::voice_conversion_model_type::VoiceConversionModelType`,\n\n vc.title,\n vc.private_bucket_hash,\n\n vc.created_at,\n vc.updated_at,\n vc.user_deleted_at,\n vc.mod_deleted_at\n\nFROM voice_conversion_models as vc\n\nWHERE vc.token = ?\n "
|
||||
},
|
||||
"9602cbbd0eac176d596ee2b66695274bffbf12947848d3bc9d75e1a9553d8934": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
"nullable": [],
|
||||
"parameters": {
|
||||
"Right": 4
|
||||
}
|
||||
},
|
||||
"query": "\nUPDATE generic_download_jobs\nSET\n status = \"complete_success\",\n on_success_downloaded_entity_token = ?,\n on_success_downloaded_entity_type = ?,\n failure_reason = NULL,\n success_execution_millis = ?,\n retry_at = NULL,\n successfully_completed_at = NOW()\nWHERE id = ?\n "
|
||||
},
|
||||
"961f792c24bee6009e3e8a215561db932871a53c48839b8cb80292de00e7b2e1": {
|
||||
"describe": {
|
||||
"columns": [],
|
||||
|
||||
+11
-1
@@ -1,7 +1,8 @@
|
||||
use anyhow::anyhow;
|
||||
use errors::AnyhowResult;
|
||||
use crate::queries::generic_download::job::list_available_generic_download_jobs::AvailableDownloadJob;
|
||||
use errors::AnyhowResult;
|
||||
use sqlx::MySqlPool;
|
||||
use std::time::Duration;
|
||||
|
||||
pub async fn mark_generic_download_job_done(
|
||||
pool: &MySqlPool,
|
||||
@@ -9,8 +10,13 @@ pub async fn mark_generic_download_job_done(
|
||||
success: bool,
|
||||
maybe_entity_token: Option<&str>,
|
||||
maybe_entity_type: Option<&str>,
|
||||
job_duration: Duration,
|
||||
) -> AnyhowResult<()>
|
||||
{
|
||||
// NB: MySql's unsigned int (32 bits) can store integers up to 4,294,967,295.
|
||||
// Given milliseconds, this is ~49.71 days, which should be plenty for us.
|
||||
let truncated_execution_millis = job_duration.as_millis() as u32;
|
||||
|
||||
let query_result = if success {
|
||||
sqlx::query!(
|
||||
r#"
|
||||
@@ -20,12 +26,14 @@ SET
|
||||
on_success_downloaded_entity_token = ?,
|
||||
on_success_downloaded_entity_type = ?,
|
||||
failure_reason = NULL,
|
||||
success_execution_millis = ?,
|
||||
retry_at = NULL,
|
||||
successfully_completed_at = NOW()
|
||||
WHERE id = ?
|
||||
"#,
|
||||
maybe_entity_token,
|
||||
maybe_entity_type,
|
||||
truncated_execution_millis,
|
||||
job.id.0,
|
||||
)
|
||||
.execute(pool)
|
||||
@@ -39,11 +47,13 @@ SET
|
||||
on_success_downloaded_entity_token = ?,
|
||||
on_success_downloaded_entity_type = ?,
|
||||
failure_reason = NULL,
|
||||
success_execution_millis = ?,
|
||||
retry_at = NULL
|
||||
WHERE id = ?
|
||||
"#,
|
||||
maybe_entity_token,
|
||||
maybe_entity_type,
|
||||
truncated_execution_millis,
|
||||
job.id.0,
|
||||
)
|
||||
.execute(pool)
|
||||
|
||||
+8
@@ -3,14 +3,20 @@ use crate::queries::generic_inference::job::list_available_generic_inference_job
|
||||
use enums::by_table::generic_inference_jobs::inference_result_type::InferenceResultType;
|
||||
use errors::AnyhowResult;
|
||||
use sqlx::MySqlPool;
|
||||
use std::time::Duration;
|
||||
|
||||
pub async fn mark_generic_inference_job_successfully_done(
|
||||
pool: &MySqlPool,
|
||||
job: &AvailableInferenceJob,
|
||||
maybe_entity_type: Option<InferenceResultType>,
|
||||
maybe_entity_token: Option<&str>,
|
||||
job_duration: Duration,
|
||||
) -> AnyhowResult<()>
|
||||
{
|
||||
// NB: MySql's unsigned int (32 bits) can store integers up to 4,294,967,295.
|
||||
// Given milliseconds, this is ~49.71 days, which should be plenty for us.
|
||||
let truncated_execution_millis = job_duration.as_millis() as u32;
|
||||
|
||||
let query_result = sqlx::query!(
|
||||
r#"
|
||||
UPDATE generic_inference_jobs
|
||||
@@ -20,12 +26,14 @@ SET
|
||||
on_success_result_entity_token = ?,
|
||||
failure_reason = NULL,
|
||||
internal_debugging_failure_reason = NULL,
|
||||
success_execution_millis = ?,
|
||||
retry_at = NULL,
|
||||
successfully_completed_at = NOW()
|
||||
WHERE id = ?
|
||||
"#,
|
||||
maybe_entity_type,
|
||||
maybe_entity_token,
|
||||
truncated_execution_millis,
|
||||
job.id.0,
|
||||
)
|
||||
.execute(pool)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use std::time::Instant;
|
||||
use anyhow::anyhow;
|
||||
use config::is_bad_download_url::is_bad_download_url;
|
||||
use container_common::anyhow_result::AnyhowResult;
|
||||
@@ -30,6 +31,8 @@ pub async fn process_single_job(job_state: &JobState, job: &AvailableDownloadJob
|
||||
|
||||
info!("Beginning work on {:?} = {} | {}", job.download_type, job.download_job_token, job.download_url);
|
||||
|
||||
let job_start_time = Instant::now();
|
||||
|
||||
// ==================== SETUP TEMP DIRS ==================== //
|
||||
|
||||
let temp_dir = format!("temp_{}", job.id.0);
|
||||
@@ -77,13 +80,19 @@ pub async fn process_single_job(job_state: &JobState, job: &AvailableDownloadJob
|
||||
|
||||
// =====================================================
|
||||
|
||||
let job_duration = Instant::now().duration_since(job_start_time);
|
||||
|
||||
info!("Job took duration to complete: {:?}", &job_duration);
|
||||
|
||||
info!("Marking job complete...");
|
||||
|
||||
mark_generic_download_job_done(
|
||||
&job_state.mysql_pool,
|
||||
job,
|
||||
true,
|
||||
entity_token.as_deref(),
|
||||
entity_type.as_deref(),
|
||||
job_duration,
|
||||
).await?;
|
||||
|
||||
info!("Saved model record: {} - {}", job.id.0, &job.download_job_token);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use std::time::Instant;
|
||||
use anyhow::anyhow;
|
||||
use crate::job::job_loop::process_single_job_error::ProcessSingleJobError;
|
||||
use crate::job::job_types::tts::process_single_tts_job::process_single_tts_job;
|
||||
@@ -33,6 +34,8 @@ pub async fn process_single_job(job_dependencies: &JobDependencies, job: &Availa
|
||||
|
||||
info!("Beginning work on {:?} = {}", job.inference_category, job.inference_job_token);
|
||||
|
||||
let job_start_time = Instant::now();
|
||||
|
||||
// ==================== SETUP TEMP DIRS ==================== //
|
||||
|
||||
let temp_dir = format!("temp_{}", job.id.0);
|
||||
@@ -64,6 +67,10 @@ pub async fn process_single_job(job_dependencies: &JobDependencies, job: &Availa
|
||||
|
||||
// =====================================================
|
||||
|
||||
let job_duration = Instant::now().duration_since(job_start_time);
|
||||
|
||||
info!("Job took duration to complete: {:?}", &job_duration);
|
||||
|
||||
info!("Marking job complete...");
|
||||
|
||||
mark_generic_inference_job_successfully_done(
|
||||
@@ -71,6 +78,7 @@ pub async fn process_single_job(job_dependencies: &JobDependencies, job: &Availa
|
||||
job,
|
||||
maybe_entity_type,
|
||||
maybe_entity_token,
|
||||
job_duration,
|
||||
).await
|
||||
.map_err(|err| ProcessSingleJobError::Other(anyhow!("database error: {:?}", err)))?;
|
||||
|
||||
|
||||
Reference in new issue
Block a user