Process status writer
cutana.process_status_writer
¶
Process status writer for Cutana - handles individual process progress file writing.
This module is responsible for: - Writing individual process progress files with atomic operations - Process registration and lifecycle management at file level - Progress updates from worker processes - File cleanup and session management
ProcessStatusWriter(progress_dir=None, session_id=None)
¶
Handles writing individual process progress to files with atomic operations and session isolation.
This class provides all file-writing operations for individual process progress tracking, including process registration, progress updates, and cleanup.
Initialize the job status writer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
progress_dir
|
str
|
Directory for progress files (default: system temp) |
None
|
session_id
|
str
|
Session ID for progress file isolation (auto-generated if None) |
None
|
write_progress_file(process_id, progress_data)
¶
Write progress data to file with atomic file locking.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
process_id
|
str
|
Process identifier |
required |
progress_data
|
Dict[str, Any]
|
Progress data to write |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if write was successful, False otherwise |
register_process(process_id, sources_assigned)
¶
Register a new process and create its initial progress file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
process_id
|
str
|
Unique identifier for the process |
required |
sources_assigned
|
int
|
Number of sources assigned to this process |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if registration was successful, False otherwise |
update_process_progress(process_id, progress_update)
¶
Update progress for a specific process.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
process_id
|
str
|
Process identifier |
required |
progress_update
|
Dict[str, Any]
|
Dictionary with progress information |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if update was successful, False otherwise |
complete_process(process_id, completed_count, failed_count)
¶
Mark a process as completed with final counts.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
process_id
|
str
|
Process identifier |
required |
completed_count
|
int
|
Final count of successfully processed sources |
required |
failed_count
|
int
|
Count of failed sources |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if completion was recorded successfully, False otherwise |
cleanup_all_progress_files()
¶
Clean up all progress files for this session.
Returns:
| Type | Description |
|---|---|
int
|
Number of files cleaned up |
report_process_progress(process_id, completed_sources)
¶
Simplified progress reporting method for cutout processes.
This method handles the common case where worker processes need to report their current progress without complex data structures.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
process_id
|
str
|
Process identifier |
required |
completed_sources
|
int
|
Number of sources completed so far |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if report was successful, False otherwise |