[{"data":1,"prerenderedAt":20342},["ShallowReactive",2],{"navigation":3,"/asynchronous-django/django-tasks-framework":1016,"/asynchronous-django/django-tasks-framework-surround":20337},[4,54,89,123,165,211,253,331,389,439,462,488,514,540,578,624,650,672,702,736,774,800,850,856,862,868,874,928],{"title":5,"path":6,"stem":7,"children":8},"Introduction and Foundations","/introduction-and-foundations","01.introduction-and-foundations/01.index",[9,10,14,18,22,26,30,34,38,42,46,50],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"What is Django","/introduction-and-foundations/what-is-django","01.introduction-and-foundations/02.what-is-django",{"title":15,"path":16,"stem":17},"Key Concepts and Philosophy","/introduction-and-foundations/key-concepts-and-philosophy","01.introduction-and-foundations/03.key-concepts-and-philosophy",{"title":19,"path":20,"stem":21},"MVC vs MVT: Understanding Django's Architecture","/introduction-and-foundations/mvc-vs-mvt","01.introduction-and-foundations/04.mvc-vs-mvt",{"title":23,"path":24,"stem":25},"Project Structure Overview","/introduction-and-foundations/project-structure-overview","01.introduction-and-foundations/05.project-structure-overview",{"title":27,"path":28,"stem":29},"Installing Django","/introduction-and-foundations/installing-django","01.introduction-and-foundations/06.installing-django",{"title":31,"path":32,"stem":33},"Creating Your First Django Project","/introduction-and-foundations/creating-first-project","01.introduction-and-foundations/07.creating-first-project",{"title":35,"path":36,"stem":37},"Creating Your First Django App","/introduction-and-foundations/creating-first-app","01.introduction-and-foundations/08.creating-first-app",{"title":39,"path":40,"stem":41},"Your First Django \"Hello World\"","/introduction-and-foundations/hello-world","01.introduction-and-foundations/09.hello-world",{"title":43,"path":44,"stem":45},"Django Quick Start Guide","/introduction-and-foundations/quick-start-guide","01.introduction-and-foundations/10.quick-start-guide",{"title":47,"path":48,"stem":49},"How Django Handles Requests","/introduction-and-foundations/how-django-handles-requests","01.introduction-and-foundations/11.how-django-handles-requests",{"title":51,"path":52,"stem":53},"Django Settings","/introduction-and-foundations/django-settings","01.introduction-and-foundations/12.django-settings",{"title":55,"path":56,"stem":57,"children":58},"The Development Environment","/development-environment","02.development-environment/1.index",[59,61,65,69,73,77,81,85],{"title":60,"path":56,"stem":57},"Development Environment",{"title":62,"path":63,"stem":64},"Recommended Tooling for Django Development","/development-environment/recommended-tooling","02.development-environment/2.recommended-tooling",{"title":66,"path":67,"stem":68},"Virtual Environments","/development-environment/virtual-environments","02.development-environment/3.virtual-environments",{"title":70,"path":71,"stem":72},"Django Admin and Management Commands","/development-environment/admin-and-management-commands","02.development-environment/4.admin-and-management-commands",{"title":74,"path":75,"stem":76},"Django Project Settings","/development-environment/project-settings","02.development-environment/5.project-settings",{"title":78,"path":79,"stem":80},"Managing Django Environments: Local, Staging, and Production","/development-environment/environments-local-staging-production","02.development-environment/6.environments-local-staging-production",{"title":82,"path":83,"stem":84},"Running Django Development Server","/development-environment/running-development-server","02.development-environment/7.running-development-server",{"title":86,"path":87,"stem":88},"Working with Django Shell","/development-environment/working-with-shell","02.development-environment/8.working-with-shell",{"title":90,"path":91,"stem":92,"children":93},"Templates and Presentation Layer","/templates-and-presentation","03.templates-and-presentation/1.index",[94,95,99,103,107,111,115,119],{"title":90,"path":91,"stem":92},{"title":96,"path":97,"stem":98},"Introduction to Django Templates","/templates-and-presentation/introduction-to-templates","03.templates-and-presentation/2.introduction-to-templates",{"title":100,"path":101,"stem":102},"The Django Template Language","/templates-and-presentation/django-template-language","03.templates-and-presentation/3.django-template-language",{"title":104,"path":105,"stem":106},"Template Inheritance","/templates-and-presentation/template-inheritance","03.templates-and-presentation/4.template-inheritance",{"title":108,"path":109,"stem":110},"Built-in Template Tags and Filters","/templates-and-presentation/built-in-template-tags-and-filters","03.templates-and-presentation/5.built-in-template-tags-and-filters",{"title":112,"path":113,"stem":114},"Including Static Files","/templates-and-presentation/including-static-files","03.templates-and-presentation/6.including-static-files",{"title":116,"path":117,"stem":118},"Working with Media Files","/templates-and-presentation/working-with-media-files","03.templates-and-presentation/7.working-with-media-files",{"title":120,"path":121,"stem":122},"Using Alternative Template Engines","/templates-and-presentation/using-alternative-template-engines","03.templates-and-presentation/8.using-alternative-template-engines",{"title":124,"path":125,"stem":126,"children":127},"URLs and Views","/urls-and-views","04.urls-and-views/01.index",[128,129,133,137,141,145,149,153,157,161],{"title":124,"path":125,"stem":126},{"title":130,"path":131,"stem":132},"The URL Dispatcher","/urls-and-views/the-url-dispatcher","04.urls-and-views/02.the-url-dispatcher",{"title":134,"path":135,"stem":136},"Writing Function-Based Views","/urls-and-views/writing-function-based-views","04.urls-and-views/03.writing-function-based-views",{"title":138,"path":139,"stem":140},"View Decorators","/urls-and-views/view-decorators","04.urls-and-views/04.view-decorators",{"title":142,"path":143,"stem":144},"Rendering Responses","/urls-and-views/rendering-responses","04.urls-and-views/05.rendering-responses",{"title":146,"path":147,"stem":148},"Redirects","/urls-and-views/redirects","04.urls-and-views/06.redirects",{"title":150,"path":151,"stem":152},"Handling HTTP Methods","/urls-and-views/handling-http-methods","04.urls-and-views/07.handling-http-methods",{"title":154,"path":155,"stem":156},"Conditional View Processing","/urls-and-views/conditional-view-processing","04.urls-and-views/08.conditional-view-processing",{"title":158,"path":159,"stem":160},"File Uploads","/urls-and-views/file-uploads","04.urls-and-views/09.file-uploads",{"title":162,"path":163,"stem":164},"Using Django Shortcut Functions","/urls-and-views/using-django-shortcut-functions","04.urls-and-views/10.using-django-shortcut-functions",{"title":166,"path":167,"stem":168,"children":169},"Class Based Views","/class-based-views","05.class-based-views/01.index",[170,171,175,179,183,187,191,195,199,203,207],{"title":166,"path":167,"stem":168},{"title":172,"path":173,"stem":174},"Introduction to Class-Based Views","/class-based-views/introduction-to-class-based-views","05.class-based-views/02.introduction-to-class-based-views",{"title":176,"path":177,"stem":178},"Common Base Classes","/class-based-views/common-base-classes","05.class-based-views/03.common-base-classes",{"title":180,"path":181,"stem":182},"Built-in Generic Views","/class-based-views/built-in-generic-views","05.class-based-views/04.built-in-generic-views",{"title":184,"path":185,"stem":186},"Views for CRUD Operations","/class-based-views/views-for-crud-operations","05.class-based-views/05.views-for-crud-operations",{"title":188,"path":189,"stem":190},"Handling Forms with Class-Based Views","/class-based-views/handling-forms-with-class-based-views","05.class-based-views/06.handling-forms-with-class-based-views",{"title":192,"path":193,"stem":194},"Using Mixins","/class-based-views/using-mixins","05.class-based-views/07.using-mixins",{"title":196,"path":197,"stem":198},"URL Configuration with Class-Based Views","/class-based-views/url-configuration-with-class-based-views","05.class-based-views/08.url-configuration-with-class-based-views",{"title":200,"path":201,"stem":202},"Subclassing Generic Views","/class-based-views/subclassing-generic-views","05.class-based-views/09.subclassing-generic-views",{"title":204,"path":205,"stem":206},"Asynchronous Class-Based Views","/class-based-views/asynchronous-class-based-views","05.class-based-views/10.asynchronous-class-based-views",{"title":208,"path":209,"stem":210},"Pagination","/class-based-views/pagination","05.class-based-views/11.pagination",{"title":212,"path":213,"stem":214,"children":215},"Forms and User Input","/forms-and-user-input","06.forms-and-user-input/01.index",[216,217,221,225,229,233,237,241,245,249],{"title":212,"path":213,"stem":214},{"title":218,"path":219,"stem":220},"Understanding HTML Forms","/forms-and-user-input/understanding-html-forms","06.forms-and-user-input/02.understanding-html-forms",{"title":222,"path":223,"stem":224},"Django's Role in Form Handling","/forms-and-user-input/djangos-role-in-form-handling","06.forms-and-user-input/03.djangos-role-in-form-handling",{"title":226,"path":227,"stem":228},"Creating Forms with Forms API","/forms-and-user-input/creating-forms-with-forms-api","06.forms-and-user-input/04.creating-forms-with-forms-api",{"title":230,"path":231,"stem":232},"Form Validation","/forms-and-user-input/form-validation","06.forms-and-user-input/05.form-validation",{"title":234,"path":235,"stem":236},"Built-in Fields and Widgets","/forms-and-user-input/built-in-fields-and-widgets","06.forms-and-user-input/06.built-in-fields-and-widgets",{"title":238,"path":239,"stem":240},"Form Rendering in Templates","/forms-and-user-input/form-rendering-in-templates","06.forms-and-user-input/07.form-rendering-in-templates",{"title":242,"path":243,"stem":244},"Model Forms","/forms-and-user-input/model-forms","06.forms-and-user-input/08.model-forms",{"title":246,"path":247,"stem":248},"Advanced Form Techniques","/forms-and-user-input/advanced-form-techniques","06.forms-and-user-input/09.advanced-form-techniques",{"title":250,"path":251,"stem":252},"Security Considerations for Forms","/forms-and-user-input/security-considerations-for-forms","06.forms-and-user-input/10.security-considerations-for-forms",{"title":254,"path":255,"stem":256,"children":257},"Models and Databases","/models-and-databases","07.models-and-databases/01.index",[258,259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327],{"title":254,"path":255,"stem":256},{"title":260,"path":261,"stem":262},"Understanding Django Models","/models-and-databases/understanding-django-models","07.models-and-databases/02.understanding-django-models",{"title":264,"path":265,"stem":266},"Defining Fields","/models-and-databases/defining-fields","07.models-and-databases/03.defining-fields",{"title":268,"path":269,"stem":270},"Relationships and Foreign Keys","/models-and-databases/relationships-and-foreign-keys","07.models-and-databases/04.relationships-and-foreign-keys",{"title":272,"path":273,"stem":274},"Examples of Relationship Patterns","/models-and-databases/examples-of-relationship-patterns","07.models-and-databases/05.examples-of-relationship-patterns",{"title":276,"path":277,"stem":278},"Making Queries","/models-and-databases/making-queries","07.models-and-databases/06.making-queries",{"title":280,"path":281,"stem":282},"Filtering, Ordering, and Slicing","/models-and-databases/filtering-ordering-slicing","07.models-and-databases/07.filtering-ordering-slicing",{"title":284,"path":285,"stem":286},"Managers and QuerySets","/models-and-databases/managers-and-querysets","07.models-and-databases/08.managers-and-querysets",{"title":288,"path":289,"stem":290},"Aggregation","/models-and-databases/aggregation","07.models-and-databases/09.aggregation",{"title":292,"path":293,"stem":294},"Search","/models-and-databases/search","07.models-and-databases/10.search",{"title":296,"path":297,"stem":298},"Raw SQL Queries","/models-and-databases/raw-sql-queries","07.models-and-databases/11.raw-sql-queries",{"title":300,"path":301,"stem":302},"Transactions","/models-and-databases/transactions","07.models-and-databases/12.transactions",{"title":304,"path":305,"stem":306},"Multiple Databases","/models-and-databases/multiple-databases","07.models-and-databases/13.multiple-databases",{"title":308,"path":309,"stem":310},"Tablespaces","/models-and-databases/tablespaces","07.models-and-databases/14.tablespaces",{"title":312,"path":313,"stem":314},"Composite Primary Keys","/models-and-databases/composite-primary-keys","07.models-and-databases/15.composite-primary-keys",{"title":316,"path":317,"stem":318},"Database Instrumentation","/models-and-databases/database-instrumentation","07.models-and-databases/16.database-instrumentation",{"title":320,"path":321,"stem":322},"Database Optimization","/models-and-databases/database-optimization","07.models-and-databases/17.database-optimization",{"title":324,"path":325,"stem":326},"Fixtures","/models-and-databases/fixtures","07.models-and-databases/18.fixtures",{"title":328,"path":329,"stem":330},"Signals","/models-and-databases/signals","07.models-and-databases/19.signals",{"title":332,"path":333,"stem":334,"children":335},"Migrations","/migrations","08.migrations/01.index",[336,337,341,345,349,353,357,361,365,369,373,377,381,385],{"title":332,"path":333,"stem":334},{"title":338,"path":339,"stem":340},"How Migrations Work","/migrations/how-migrations-work","08.migrations/02.how-migrations-work",{"title":342,"path":343,"stem":344},"Management Commands","/migrations/management-commands","08.migrations/03.management-commands",{"title":346,"path":347,"stem":348},"Dependencies and Workflow","/migrations/dependencies-and-workflow","08.migrations/04.dependencies-and-workflow",{"title":350,"path":351,"stem":352},"Transaction Handling","/migrations/transaction-handling","08.migrations/05.transaction-handling",{"title":354,"path":355,"stem":356},"Adding Migrations to Apps","/migrations/adding-migrations-to-apps","08.migrations/06.adding-migrations-to-apps",{"title":358,"path":359,"stem":360},"Reversing Migrations","/migrations/reversing-migrations","08.migrations/07.reversing-migrations",{"title":362,"path":363,"stem":364},"Historical Models","/migrations/historical-models","08.migrations/08.historical-models",{"title":366,"path":367,"stem":368},"Considerations When Removing Fields","/migrations/considerations-when-removing-fields","08.migrations/09.considerations-when-removing-fields",{"title":370,"path":371,"stem":372},"Data Migrations","/migrations/data-migrations","08.migrations/10.data-migrations",{"title":374,"path":375,"stem":376},"Squashing Migrations","/migrations/squashing-migrations","08.migrations/11.squashing-migrations",{"title":378,"path":379,"stem":380},"Serializing Values","/migrations/serializing-values","08.migrations/12.serializing-values",{"title":382,"path":383,"stem":384},"Supporting Multiple Django Versions","/migrations/supporting-multiple-django-versions","08.migrations/13.supporting-multiple-django-versions",{"title":386,"path":387,"stem":388},"Django Serialization Framework","/migrations/django-serialization-framework","08.migrations/14.django-serialization-framework",{"title":390,"path":391,"stem":392,"children":393},"Authentication and Authorization","/authentication-and-authorization","09.authentication-and-authorization/01.index",[394,395,399,403,407,411,415,419,423,427,431,435],{"title":390,"path":391,"stem":392},{"title":396,"path":397,"stem":398},"Overview of Django's Authentication System","/authentication-and-authorization/overview-of-django-authentication-system","09.authentication-and-authorization/02.overview-of-django-authentication-system",{"title":400,"path":401,"stem":402},"Users and Groups","/authentication-and-authorization/users-and-groups","09.authentication-and-authorization/03.users-and-groups",{"title":404,"path":405,"stem":406},"Permissions","/authentication-and-authorization/permissions","09.authentication-and-authorization/04.permissions",{"title":408,"path":409,"stem":410},"Password Management","/authentication-and-authorization/password-management","09.authentication-and-authorization/05.password-management",{"title":412,"path":413,"stem":414},"Authentication Views","/authentication-and-authorization/authentication-views","09.authentication-and-authorization/06.authentication-views",{"title":416,"path":417,"stem":418},"Login and Logout","/authentication-and-authorization/login-and-logout","09.authentication-and-authorization/07.login-and-logout",{"title":420,"path":421,"stem":422},"Custom User Models","/authentication-and-authorization/custom-user-models","09.authentication-and-authorization/08.custom-user-models",{"title":424,"path":425,"stem":426},"Middleware for Authentication","/authentication-and-authorization/middleware-for-authentication","09.authentication-and-authorization/09.middleware-for-authentication",{"title":428,"path":429,"stem":430},"Authorization in Views and Templates","/authentication-and-authorization/authorization-in-views-and-templates","09.authentication-and-authorization/10.authorization-in-views-and-templates",{"title":432,"path":433,"stem":434},"Integrating Social Authentication","/authentication-and-authorization/integrating-social-authentication","09.authentication-and-authorization/11.integrating-social-authentication",{"title":436,"path":437,"stem":438},"Security Best Practices","/authentication-and-authorization/security-best-practices","09.authentication-and-authorization/12.security-best-practices",{"title":440,"path":441,"stem":442,"children":443},"Sessions, Cookies, and State","/sessions-cookies-state","10.sessions-cookies-state/01.index",[444,446,450,454,458],{"title":445,"path":441,"stem":442},"Sessions, Cookies, and State Management",{"title":447,"path":448,"stem":449},"Introduction to Sessions","/sessions-cookies-state/introduction-to-sessions","10.sessions-cookies-state/02.introduction-to-sessions",{"title":451,"path":452,"stem":453},"Working with Cookies","/sessions-cookies-state/working-with-cookies","10.sessions-cookies-state/03.working-with-cookies",{"title":455,"path":456,"stem":457},"Server-Side Session Storage Options","/sessions-cookies-state/server-side-session-storage-options","10.sessions-cookies-state/04.server-side-session-storage-options",{"title":459,"path":460,"stem":461},"Session Security","/sessions-cookies-state/session-security","10.sessions-cookies-state/05.session-security",{"title":463,"path":464,"stem":465,"children":466},"Working with Files","/working-with-files","11.working-with-files/01.index",[467,468,472,476,480,484],{"title":463,"path":464,"stem":465},{"title":469,"path":470,"stem":471},"Files in Models","/working-with-files/files-in-models","11.working-with-files/02.files-in-models",{"title":473,"path":474,"stem":475},"The File Object","/working-with-files/the-file-object","11.working-with-files/03.the-file-object",{"title":477,"path":478,"stem":479},"Storage Backends","/working-with-files/storage-backends","11.working-with-files/04.storage-backends",{"title":481,"path":482,"stem":483},"Using Cloud Storage Providers","/working-with-files/using-cloud-storage-providers","11.working-with-files/05.using-cloud-storage-providers",{"title":485,"path":486,"stem":487},"Managing Media in Production","/working-with-files/managing-media-in-production","11.working-with-files/06.managing-media-in-production",{"title":489,"path":490,"stem":491,"children":492},"Admin Site","/admin-site","12.admin-site/01.index",[493,494,498,502,506,510],{"title":489,"path":490,"stem":491},{"title":495,"path":496,"stem":497},"Enabling the Admin","/admin-site/enabling-the-admin","12.admin-site/02.enabling-the-admin",{"title":499,"path":500,"stem":501},"Registering Models","/admin-site/registering-models","12.admin-site/03.registering-models",{"title":503,"path":504,"stem":505},"Customizing Admin Display","/admin-site/customizing-admin-display","12.admin-site/04.customizing-admin-display",{"title":507,"path":508,"stem":509},"Admin Actions","/admin-site/admin-actions","12.admin-site/05.admin-actions",{"title":511,"path":512,"stem":513},"Admin Security Best Practices","/admin-site/admin-security-best-practices","12.admin-site/06.admin-security-best-practices",{"title":515,"path":516,"stem":517,"children":518},"Middleware","/middleware","13.middleware/01.index",[519,520,524,528,532,536],{"title":515,"path":516,"stem":517},{"title":521,"path":522,"stem":523},"Middleware Overview","/middleware/middleware-overview","13.middleware/02.middleware-overview",{"title":525,"path":526,"stem":527},"Built-in Middleware","/middleware/built-in-middleware","13.middleware/03.built-in-middleware",{"title":529,"path":530,"stem":531},"Creating Custom Middleware","/middleware/creating-custom-middleware","13.middleware/04.creating-custom-middleware",{"title":533,"path":534,"stem":535},"Middleware Ordering","/middleware/middleware-ordering","13.middleware/05.middleware-ordering",{"title":537,"path":538,"stem":539},"Performance and Debugging","/middleware/performance-and-debugging","13.middleware/06.performance-and-debugging",{"title":541,"path":542,"stem":543,"children":544},"Security","/security","14.security/01.index",[545,546,550,554,558,562,566,570,574],{"title":541,"path":542,"stem":543},{"title":547,"path":548,"stem":549},"Django Security Philosophy","/security/django-security-philosophy","14.security/02.django-security-philosophy",{"title":551,"path":552,"stem":553},"Cross Site Request Forgery","/security/cross-site-request-forgery","14.security/03.cross-site-request-forgery",{"title":555,"path":556,"stem":557},"Cross Site Scripting","/security/cross-site-scripting","14.security/04.cross-site-scripting",{"title":559,"path":560,"stem":561},"SQL Injection Protection","/security/sql-injection-protection","14.security/05.sql-injection-protection",{"title":563,"path":564,"stem":565},"Clickjacking Protection","/security/clickjacking-protection","14.security/06.clickjacking-protection",{"title":567,"path":568,"stem":569},"HTTPS Setup and HSTS","/security/https-setup-and-hsts","14.security/07.https-setup-and-hsts",{"title":571,"path":572,"stem":573},"Password Storage and Cryptography","/security/password-storage-and-cryptography","14.security/08.password-storage-and-cryptography",{"title":575,"path":576,"stem":577},"Secure Deployment Checklist","/security/secure-deployment-checklist","14.security/09.secure-deployment-checklist",{"title":579,"path":580,"stem":581,"children":582},"Testing","/testing","15.testing/01.index",[583,584,588,592,596,600,604,608,612,616,620],{"title":579,"path":580,"stem":581},{"title":585,"path":586,"stem":587},"Introduction to Django Testing","/testing/introduction-to-django-testing","15.testing/02.introduction-to-django-testing",{"title":589,"path":590,"stem":591},"Writing and Running Tests","/testing/writing-and-running-tests","15.testing/03.writing-and-running-tests",{"title":593,"path":594,"stem":595},"Test Tools","/testing/test-tools","15.testing/04.test-tools",{"title":597,"path":598,"stem":599},"Testing Models","/testing/testing-models","15.testing/05.testing-models",{"title":601,"path":602,"stem":603},"Testing Views","/testing/testing-views","15.testing/06.testing-views",{"title":605,"path":606,"stem":607},"Testing Forms","/testing/testing-forms","15.testing/07.testing-forms",{"title":609,"path":610,"stem":611},"Testing Templates","/testing/testing-templates","15.testing/08.testing-templates",{"title":613,"path":614,"stem":615},"Testing Authentication","/testing/testing-authentication","15.testing/09.testing-authentication",{"title":617,"path":618,"stem":619},"Advanced Testing Topics","/testing/advanced-testing-topics","15.testing/10.advanced-testing-topics",{"title":621,"path":622,"stem":623},"Performance Testing","/testing/performance-testing","15.testing/11.performance-testing",{"title":625,"path":626,"stem":627,"children":628},"Static Assets and Frontend Integration","/static-assets-and-frontend-integration","16.static-assets-and-frontend-integration/01.index",[629,630,634,638,642,646],{"title":625,"path":626,"stem":627},{"title":631,"path":632,"stem":633},"Working with Static Files","/static-assets-and-frontend-integration/working-with-static-files","16.static-assets-and-frontend-integration/02.working-with-static-files",{"title":635,"path":636,"stem":637},"Integrating CSS and JavaScript","/static-assets-and-frontend-integration/integrating-css-and-javascript","16.static-assets-and-frontend-integration/03.integrating-css-and-javascript",{"title":639,"path":640,"stem":641},"Using Build Tools like Vite or Webpack","/static-assets-and-frontend-integration/using-build-tools-like-vite-or-webpack","16.static-assets-and-frontend-integration/04.using-build-tools-like-vite-or-webpack",{"title":643,"path":644,"stem":645},"Using React or Vue with Django","/static-assets-and-frontend-integration/using-react-or-vue-with-django","16.static-assets-and-frontend-integration/05.using-react-or-vue-with-django",{"title":647,"path":648,"stem":649},"Managing CORS","/static-assets-and-frontend-integration/managing-cors","16.static-assets-and-frontend-integration/06.managing-cors",{"title":651,"path":652,"stem":653,"children":654},"Internationalization and Localization","/internationalization-and-localization","17.internationalization-and-localization/01.index",[655,656,660,664,668],{"title":651,"path":652,"stem":653},{"title":657,"path":658,"stem":659},"Enabling Translation","/internationalization-and-localization/enabling-translation","17.internationalization-and-localization/02.enabling-translation",{"title":661,"path":662,"stem":663},"Translating Text in Code and Templates","/internationalization-and-localization/translating-text-in-code-and-templates","17.internationalization-and-localization/03.translating-text-in-code-and-templates",{"title":665,"path":666,"stem":667},"Timezone Support","/internationalization-and-localization/timezone-support","17.internationalization-and-localization/04.timezone-support",{"title":669,"path":670,"stem":671},"Locale Middleware","/internationalization-and-localization/locale-middleware","17.internationalization-and-localization/05.locale-middleware",{"title":673,"path":674,"stem":675,"children":676},"Caching","/caching","18.caching/01.index",[677,678,682,686,690,694,698],{"title":673,"path":674,"stem":675},{"title":679,"path":680,"stem":681},"Introduction to Caching","/caching/introduction-to-caching","18.caching/02.introduction-to-caching",{"title":683,"path":684,"stem":685},"Cache Backends","/caching/cache-backends","18.caching/03.cache-backends",{"title":687,"path":688,"stem":689},"Per View Caching","/caching/per-view-caching","18.caching/04.per-view-caching",{"title":691,"path":692,"stem":693},"Low Level Cache API","/caching/low-level-cache-api","18.caching/05.low-level-cache-api",{"title":695,"path":696,"stem":697},"Template Fragment Caching","/caching/template-fragment-caching","18.caching/06.template-fragment-caching",{"title":699,"path":700,"stem":701},"Deployment Level Caching Patterns","/caching/deployment-level-caching-patterns","18.caching/07.deployment-level-caching-patterns",{"title":703,"path":704,"stem":705,"children":706},"Asynchronous Django","/asynchronous-django","19.asynchronous-django/01.index",[707,708,712,716,720,724,728,732],{"title":703,"path":704,"stem":705},{"title":709,"path":710,"stem":711},"Introduction to ASGI","/asynchronous-django/introduction-to-asgi","19.asynchronous-django/02.introduction-to-asgi",{"title":713,"path":714,"stem":715},"Async Views","/asynchronous-django/async-views","19.asynchronous-django/03.async-views",{"title":717,"path":718,"stem":719},"Async ORM Status","/asynchronous-django/async-orm-status","19.asynchronous-django/04.async-orm-status",{"title":721,"path":722,"stem":723},"WebSockets with Channels","/asynchronous-django/websockets-with-channels","19.asynchronous-django/05.websockets-with-channels",{"title":725,"path":726,"stem":727},"Background Tasks with Celery or RQ","/asynchronous-django/background-tasks-with-celery-or-rq","19.asynchronous-django/06.background-tasks-with-celery-or-rq",{"title":729,"path":730,"stem":731},"Asynchronous Support","/asynchronous-django/asynchronous-support","19.asynchronous-django/07.asynchronous-support",{"title":733,"path":734,"stem":735},"Django's Tasks Framework","/asynchronous-django/django-tasks-framework","19.asynchronous-django/08.django-tasks-framework",{"title":737,"path":738,"stem":739,"children":740},"Deployment","/deployment","20.deployment/01.index",[741,742,746,750,754,758,762,766,770],{"title":737,"path":738,"stem":739},{"title":743,"path":744,"stem":745},"Preparing for Production","/deployment/preparing-for-production","20.deployment/02.preparing-for-production",{"title":747,"path":748,"stem":749},"Using WSGI and ASGI Servers","/deployment/using-wsgi-and-asgi-servers","20.deployment/03.using-wsgi-and-asgi-servers",{"title":751,"path":752,"stem":753},"Deploying on Linux Servers","/deployment/deploying-on-linux-servers","20.deployment/04.deploying-on-linux-servers",{"title":755,"path":756,"stem":757},"Using Docker","/deployment/using-docker","20.deployment/05.using-docker",{"title":759,"path":760,"stem":761},"Cloud Deployment Guides","/deployment/cloud-deployment-guides","20.deployment/06.cloud-deployment-guides",{"title":763,"path":764,"stem":765},"Scaling and Load Balancing","/deployment/scaling-and-load-balancing","20.deployment/07.scaling-and-load-balancing",{"title":767,"path":768,"stem":769},"Monitoring and Logging","/deployment/monitoring-and-logging","20.deployment/08.monitoring-and-logging",{"title":771,"path":772,"stem":773},"Backup Strategies","/deployment/backup-strategies","20.deployment/09.backup-strategies",{"title":775,"path":776,"stem":777,"children":778},"Performance and Optimization","/performance-and-optimization","21.performance-and-optimization/01.index",[779,780,784,788,792,796],{"title":775,"path":776,"stem":777},{"title":781,"path":782,"stem":783},"Query Optimization","/performance-and-optimization/query-optimization","21.performance-and-optimization/02.query-optimization",{"title":785,"path":786,"stem":787},"Template Rendering Optimization","/performance-and-optimization/template-rendering-optimization","21.performance-and-optimization/03.template-rendering-optimization",{"title":789,"path":790,"stem":791},"Using Select Related and Prefetch Related","/performance-and-optimization/using-select-related-and-prefetch-related","21.performance-and-optimization/04.using-select-related-and-prefetch-related",{"title":793,"path":794,"stem":795},"Caching Strategies","/performance-and-optimization/caching-strategies","21.performance-and-optimization/05.caching-strategies",{"title":797,"path":798,"stem":799},"Profiling Django Apps","/performance-and-optimization/profiling-django-apps","21.performance-and-optimization/06.profiling-django-apps",{"title":801,"path":802,"stem":803,"children":804},"Advanced and Expert Topics","/advanced-and-expert-topics","22.advanced-and-expert-topics/01.index",[805,806,810,814,818,822,826,830,834,838,842,846],{"title":801,"path":802,"stem":803},{"title":807,"path":808,"stem":809},"System Architecture Patterns","/advanced-and-expert-topics/system-architecture-patterns","22.advanced-and-expert-topics/02.system-architecture-patterns",{"title":811,"path":812,"stem":813},"Domain Driven Design with Django","/advanced-and-expert-topics/domain-driven-design-with-django","22.advanced-and-expert-topics/03.domain-driven-design-with-django",{"title":815,"path":816,"stem":817},"Building Large Scale Django Projects","/advanced-and-expert-topics/building-large-scale-django-projects","22.advanced-and-expert-topics/04.building-large-scale-django-projects",{"title":819,"path":820,"stem":821},"Plugin Architectures for Django Apps","/advanced-and-expert-topics/plugin-architectures-for-django-apps","22.advanced-and-expert-topics/05.plugin-architectures-for-django-apps",{"title":823,"path":824,"stem":825},"Extending Django's Core","/advanced-and-expert-topics/extending-djangos-core","22.advanced-and-expert-topics/06.extending-djangos-core",{"title":827,"path":828,"stem":829},"Custom ORM Expressions","/advanced-and-expert-topics/custom-orm-expressions","22.advanced-and-expert-topics/07.custom-orm-expressions",{"title":831,"path":832,"stem":833},"Custom Management Commands","/advanced-and-expert-topics/custom-management-commands","22.advanced-and-expert-topics/08.custom-management-commands",{"title":835,"path":836,"stem":837},"Working with Signals","/advanced-and-expert-topics/working-with-signals","22.advanced-and-expert-topics/09.working-with-signals",{"title":839,"path":840,"stem":841},"Building Reusable Django Packages","/advanced-and-expert-topics/building-reusable-django-packages","22.advanced-and-expert-topics/10.building-reusable-django-packages",{"title":843,"path":844,"stem":845},"Integrating Microservices","/advanced-and-expert-topics/integrating-microservices","22.advanced-and-expert-topics/11.integrating-microservices",{"title":847,"path":848,"stem":849},"Advanced Security Hardening","/advanced-and-expert-topics/advanced-security-hardening","22.advanced-and-expert-topics/12.advanced-security-hardening",{"title":851,"path":852,"stem":853,"children":854},"Logging in Django","/logging-in-django","23.logging-in-django/01.index",[855],{"title":851,"path":852,"stem":853},{"title":857,"path":858,"stem":859,"children":860},"FAQ and Troubleshooting","/faq-and-troubleshooting","24.faq-and-troubleshooting/01.index",[861],{"title":857,"path":858,"stem":859},{"title":863,"path":864,"stem":865,"children":866},"External Packages and Ecosystem","/external-packages-and-ecosystem","25.external-packages-and-ecosystem/01.index",[867],{"title":863,"path":864,"stem":865},{"title":869,"path":870,"stem":871,"children":872},"Django Internals and Contributing","/django-internals-and-contributing","26.django-internals-and-contributing/01.index",[873],{"title":869,"path":870,"stem":871},{"title":875,"path":876,"stem":877,"children":878},"Microservices with Django","/microservices-with-django","27.microservices-with-django/01.index",[879,880,884,888,892,896,900,904,908,912,916,920,924],{"title":875,"path":876,"stem":877},{"title":881,"path":882,"stem":883},"What Is a Microservice?","/microservices-with-django/what-is-a-microservice","27.microservices-with-django/02.what-is-a-microservice",{"title":885,"path":886,"stem":887},"Introducing the Django Microservices Architecture","/microservices-with-django/django-microservices-architecture","27.microservices-with-django/03.django-microservices-architecture",{"title":889,"path":890,"stem":891},"Setting Up the Development and Runtime Environment","/microservices-with-django/development-environment","27.microservices-with-django/04.development-environment",{"title":893,"path":894,"stem":895},"Cloud-native Data Processing with MongoDB","/microservices-with-django/cloud-native-data-processing","27.microservices-with-django/05.cloud-native-data-processing",{"title":897,"path":898,"stem":899},"Creating RESTful APIs for Microservices","/microservices-with-django/restful-apis","27.microservices-with-django/06.restful-apis",{"title":901,"path":902,"stem":903},"Orchestrating Microservices with Celery and RabbitMQ","/microservices-with-django/orchestrating-celery-rabbitmq","27.microservices-with-django/07.orchestrating-celery-rabbitmq",{"title":905,"path":906,"stem":907},"Testing Microservices","/microservices-with-django/testing-microservices","27.microservices-with-django/08.testing-microservices",{"title":909,"path":910,"stem":911},"Deploying Microservices","/microservices-with-django/deploying-microservices","27.microservices-with-django/09.deploying-microservices",{"title":913,"path":914,"stem":915},"Securing Microservices","/microservices-with-django/securing-microservices","27.microservices-with-django/10.securing-microservices",{"title":917,"path":918,"stem":919},"Improving Microservices Performance with Caching","/microservices-with-django/performance-caching","27.microservices-with-django/11.performance-caching",{"title":921,"path":922,"stem":923},"Best Practices","/microservices-with-django/best-practices","27.microservices-with-django/12.best-practices",{"title":925,"path":926,"stem":927},"Transforming a Monolithic Web App into a Microservice version","/microservices-with-django/monolith-to-microservices","27.microservices-with-django/13.monolith-to-microservices",{"title":929,"path":930,"stem":931,"children":932},"Releases","/releases","releases",[933,936,940,944,948,952,956,960,964,968,972,976,980,984,988,992,996,1000,1004,1008,1012],{"title":934,"path":930,"stem":935},"Django Releases","releases/index",{"title":937,"path":938,"stem":939},"Django 5.1.10 release notes","/releases/5.1.10","releases/5.1.10",{"title":941,"path":942,"stem":943},"Django 5.1.11 release notes","/releases/5.1.11","releases/5.1.11",{"title":945,"path":946,"stem":947},"Django 5.1.12 release notes","/releases/5.1.12","releases/5.1.12",{"title":949,"path":950,"stem":951},"Django 5.1.13 release notes","/releases/5.1.13","releases/5.1.13",{"title":953,"path":954,"stem":955},"Django 5.1.14 release notes","/releases/5.1.14","releases/5.1.14",{"title":957,"path":958,"stem":959},"Django 5.1.15 release notes","/releases/5.1.15","releases/5.1.15",{"title":961,"path":962,"stem":963},"Django 5.2 release notes","/releases/5.2","releases/5.2",{"title":965,"path":966,"stem":967},"Django 5.2.1 release notes","/releases/5.2.1","releases/5.2.1",{"title":969,"path":970,"stem":971},"Django 5.2.10 release notes","/releases/5.2.10","releases/5.2.10",{"title":973,"path":974,"stem":975},"Django 5.2.2 release notes","/releases/5.2.2","releases/5.2.2",{"title":977,"path":978,"stem":979},"Django 5.2.3 release notes","/releases/5.2.3","releases/5.2.3",{"title":981,"path":982,"stem":983},"Django 5.2.4 release notes","/releases/5.2.4","releases/5.2.4",{"title":985,"path":986,"stem":987},"Django 5.2.5 release notes","/releases/5.2.5","releases/5.2.5",{"title":989,"path":990,"stem":991},"Django 5.2.6 release notes","/releases/5.2.6","releases/5.2.6",{"title":993,"path":994,"stem":995},"Django 5.2.7 release notes","/releases/5.2.7","releases/5.2.7",{"title":997,"path":998,"stem":999},"Django 5.2.8 release notes","/releases/5.2.8","releases/5.2.8",{"title":1001,"path":1002,"stem":1003},"Django 5.2.9 release notes","/releases/5.2.9","releases/5.2.9",{"title":1005,"path":1006,"stem":1007},"Django 6.0 release notes","/releases/6.0","releases/6.0",{"title":1009,"path":1010,"stem":1011},"Django 6.0.1 release notes","/releases/6.0.1","releases/6.0.1",{"title":1013,"path":1014,"stem":1015},"Django 6.1 release notes - UNDER DEVELOPMENT","/releases/6.1","releases/6.1",{"id":1017,"title":733,"body":1018,"description":1028,"extension":20332,"links":20333,"meta":20334,"navigation":1109,"path":734,"seo":20335,"stem":735,"__hash__":20336},"docs/19.asynchronous-django/08.django-tasks-framework.md",{"type":1019,"value":1020,"toc":20307},"minimark",[1021,1025,1029,1034,1039,1042,1064,1068,1383,1387,2010,2014,2018,3323,3327,4027,4031,4745,4749,4753,6022,6026,8824,8828,11696,11700,11704,13646,13650,15853,15857,15861,17342,17346,20301,20304],[1022,1023,733],"h1",{"id":1024},"djangos-tasks-framework",[1026,1027,1028],"p",{},"Django's Tasks framework provides a built-in solution for handling background tasks without requiring external dependencies like Celery or RQ. This framework enables you to offload time-consuming operations from request-response cycles, improving application performance and user experience.",[1030,1031,1033],"h2",{"id":1032},"background-task-fundamentals","Background Task Fundamentals",[1035,1036,1038],"h3",{"id":1037},"understanding-background-tasks","Understanding Background Tasks",[1026,1040,1041],{},"Background tasks are operations that run outside the normal request-response cycle. They're essential for:",[1043,1044,1045,1049,1052,1055,1058,1061],"ul",{},[1046,1047,1048],"li",{},"Long-running computations",[1046,1050,1051],{},"Email sending",[1046,1053,1054],{},"File processing",[1046,1056,1057],{},"API calls to external services",[1046,1059,1060],{},"Data synchronization",[1046,1062,1063],{},"Periodic maintenance tasks",[1035,1065,1067],{"id":1066},"django-tasks-vs-external-solutions","Django Tasks vs External Solutions",[1069,1070,1075],"pre",{"className":1071,"code":1072,"language":1073,"meta":1074,"style":1074},"language-python shiki shiki-themes material-theme-lighter vitesse-light vitesse-dark","# Traditional approach with external task queue (Celery)\nfrom celery import shared_task\n\n@shared_task\ndef send_email_celery(user_id, subject, message):\n    \"\"\"Send email using Celery.\"\"\"\n    user = User.objects.get(id=user_id)\n    send_mail(subject, message, 'from@example.com', [user.email])\n\n# Django Tasks approach (built-in)\nfrom django.tasks import task\n\n@task\ndef send_email_django_task(user_id, subject, message):\n    \"\"\"Send email using Django Tasks.\"\"\"\n    user = User.objects.get(id=user_id)\n    send_mail(subject, message, 'from@example.com', [user.email])\n","python","",[1076,1077,1078,1087,1104,1111,1122,1153,1167,1205,1249,1254,1260,1278,1283,1291,1313,1323,1350],"code",{"__ignoreMap":1074},[1079,1080,1083],"span",{"class":1081,"line":1082},"line",1,[1079,1084,1086],{"class":1085},"s9Tkl","# Traditional approach with external task queue (Celery)\n",[1079,1088,1090,1094,1098,1101],{"class":1081,"line":1089},2,[1079,1091,1093],{"class":1092},"siDh9","from",[1079,1095,1097],{"class":1096},"sftqT"," celery ",[1079,1099,1100],{"class":1092},"import",[1079,1102,1103],{"class":1096}," shared_task\n",[1079,1105,1107],{"class":1081,"line":1106},3,[1079,1108,1110],{"emptyLinePlaceholder":1109},true,"\n",[1079,1112,1114,1118],{"class":1081,"line":1113},4,[1079,1115,1117],{"class":1116},"soVBu","@",[1079,1119,1121],{"class":1120},"sljsM","shared_task\n",[1079,1123,1125,1129,1132,1135,1139,1142,1145,1147,1150],{"class":1081,"line":1124},5,[1079,1126,1128],{"class":1127},"s5Kfy","def",[1079,1130,1131],{"class":1120}," send_email_celery",[1079,1133,1134],{"class":1116},"(",[1079,1136,1138],{"class":1137},"sCyAa","user_id",[1079,1140,1141],{"class":1116},",",[1079,1143,1144],{"class":1137}," subject",[1079,1146,1141],{"class":1116},[1079,1148,1149],{"class":1137}," message",[1079,1151,1152],{"class":1116},"):\n",[1079,1154,1156,1160,1164],{"class":1081,"line":1155},6,[1079,1157,1159],{"class":1158},"sm7ve","    \"\"\"",[1079,1161,1163],{"class":1162},"sVyVU","Send email using Celery.",[1079,1165,1166],{"class":1158},"\"\"\"\n",[1079,1168,1170,1173,1176,1179,1182,1186,1188,1192,1194,1198,1200,1202],{"class":1081,"line":1169},7,[1079,1171,1172],{"class":1096},"    user ",[1079,1174,1175],{"class":1116},"=",[1079,1177,1178],{"class":1096}," User",[1079,1180,1181],{"class":1116},".",[1079,1183,1185],{"class":1184},"sBPpx","objects",[1079,1187,1181],{"class":1116},[1079,1189,1191],{"class":1190},"siWMO","get",[1079,1193,1134],{"class":1116},[1079,1195,1197],{"class":1196},"sqOPj","id",[1079,1199,1175],{"class":1116},[1079,1201,1138],{"class":1190},[1079,1203,1204],{"class":1116},")\n",[1079,1206,1208,1211,1213,1216,1218,1220,1222,1226,1230,1233,1235,1238,1241,1243,1246],{"class":1081,"line":1207},8,[1079,1209,1210],{"class":1190},"    send_mail",[1079,1212,1134],{"class":1116},[1079,1214,1215],{"class":1190},"subject",[1079,1217,1141],{"class":1116},[1079,1219,1149],{"class":1190},[1079,1221,1141],{"class":1116},[1079,1223,1225],{"class":1224},"sbYkP"," '",[1079,1227,1229],{"class":1228},"sTbE_","from@example.com",[1079,1231,1232],{"class":1224},"'",[1079,1234,1141],{"class":1116},[1079,1236,1237],{"class":1116}," [",[1079,1239,1240],{"class":1190},"user",[1079,1242,1181],{"class":1116},[1079,1244,1245],{"class":1184},"email",[1079,1247,1248],{"class":1116},"])\n",[1079,1250,1252],{"class":1081,"line":1251},9,[1079,1253,1110],{"emptyLinePlaceholder":1109},[1079,1255,1257],{"class":1081,"line":1256},10,[1079,1258,1259],{"class":1085},"# Django Tasks approach (built-in)\n",[1079,1261,1263,1265,1268,1270,1273,1275],{"class":1081,"line":1262},11,[1079,1264,1093],{"class":1092},[1079,1266,1267],{"class":1096}," django",[1079,1269,1181],{"class":1116},[1079,1271,1272],{"class":1096},"tasks ",[1079,1274,1100],{"class":1092},[1079,1276,1277],{"class":1096}," task\n",[1079,1279,1281],{"class":1081,"line":1280},12,[1079,1282,1110],{"emptyLinePlaceholder":1109},[1079,1284,1286,1288],{"class":1081,"line":1285},13,[1079,1287,1117],{"class":1116},[1079,1289,1290],{"class":1120},"task\n",[1079,1292,1294,1296,1299,1301,1303,1305,1307,1309,1311],{"class":1081,"line":1293},14,[1079,1295,1128],{"class":1127},[1079,1297,1298],{"class":1120}," send_email_django_task",[1079,1300,1134],{"class":1116},[1079,1302,1138],{"class":1137},[1079,1304,1141],{"class":1116},[1079,1306,1144],{"class":1137},[1079,1308,1141],{"class":1116},[1079,1310,1149],{"class":1137},[1079,1312,1152],{"class":1116},[1079,1314,1316,1318,1321],{"class":1081,"line":1315},15,[1079,1317,1159],{"class":1158},[1079,1319,1320],{"class":1162},"Send email using Django Tasks.",[1079,1322,1166],{"class":1158},[1079,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348],{"class":1081,"line":1325},16,[1079,1327,1172],{"class":1096},[1079,1329,1175],{"class":1116},[1079,1331,1178],{"class":1096},[1079,1333,1181],{"class":1116},[1079,1335,1185],{"class":1184},[1079,1337,1181],{"class":1116},[1079,1339,1191],{"class":1190},[1079,1341,1134],{"class":1116},[1079,1343,1197],{"class":1196},[1079,1345,1175],{"class":1116},[1079,1347,1138],{"class":1190},[1079,1349,1204],{"class":1116},[1079,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381],{"class":1081,"line":1352},17,[1079,1354,1210],{"class":1190},[1079,1356,1134],{"class":1116},[1079,1358,1215],{"class":1190},[1079,1360,1141],{"class":1116},[1079,1362,1149],{"class":1190},[1079,1364,1141],{"class":1116},[1079,1366,1225],{"class":1224},[1079,1368,1229],{"class":1228},[1079,1370,1232],{"class":1224},[1079,1372,1141],{"class":1116},[1079,1374,1237],{"class":1116},[1079,1376,1240],{"class":1190},[1079,1378,1181],{"class":1116},[1079,1380,1245],{"class":1184},[1079,1382,1248],{"class":1116},[1035,1384,1386],{"id":1385},"task-lifecycle","Task Lifecycle",[1069,1388,1390],{"className":1071,"code":1389,"language":1073,"meta":1074,"style":1074},"# Task lifecycle demonstration\nfrom django.tasks import task, get_task_backend\nfrom django.http import JsonResponse\nimport time\n\n@task\ndef long_running_task(duration, task_name):\n    \"\"\"Demonstrate task lifecycle.\"\"\"\n    print(f\"Task {task_name} started\")\n    \n    for i in range(duration):\n        time.sleep(1)\n        print(f\"Task {task_name} progress: {i+1}/{duration}\")\n    \n    result = f\"Task {task_name} completed after {duration} seconds\"\n    print(result)\n    return result\n\ndef start_task_view(request):\n    \"\"\"Start a background task.\"\"\"\n    # Enqueue the task\n    task_result = long_running_task.delay(5, \"example-task\")\n    \n    return JsonResponse({\n        'task_id': task_result.id,\n        'status': 'started',\n        'message': 'Task has been queued'\n    })\n\ndef check_task_status_view(request, task_id):\n    \"\"\"Check task status.\"\"\"\n    backend = get_task_backend()\n    task_result = backend.get_result(task_id)\n    \n    return JsonResponse({\n        'task_id': task_id,\n        'status': task_result.status,\n        'result': task_result.result if task_result.ready() else None,\n        'progress': task_result.progress if hasattr(task_result, 'progress') else None\n    })\n",[1076,1391,1392,1397,1417,1433,1440,1444,1450,1469,1478,1507,1512,1532,1550,1597,1601,1631,1642,1650,1655,1670,1680,1686,1718,1723,1734,1758,1779,1799,1805,1810,1829,1839,1853,1874,1879,1888,1903,1922,1961,2005],{"__ignoreMap":1074},[1079,1393,1394],{"class":1081,"line":1082},[1079,1395,1396],{"class":1085},"# Task lifecycle demonstration\n",[1079,1398,1399,1401,1403,1405,1407,1409,1412,1414],{"class":1081,"line":1089},[1079,1400,1093],{"class":1092},[1079,1402,1267],{"class":1096},[1079,1404,1181],{"class":1116},[1079,1406,1272],{"class":1096},[1079,1408,1100],{"class":1092},[1079,1410,1411],{"class":1096}," task",[1079,1413,1141],{"class":1116},[1079,1415,1416],{"class":1096}," get_task_backend\n",[1079,1418,1419,1421,1423,1425,1428,1430],{"class":1081,"line":1106},[1079,1420,1093],{"class":1092},[1079,1422,1267],{"class":1096},[1079,1424,1181],{"class":1116},[1079,1426,1427],{"class":1096},"http ",[1079,1429,1100],{"class":1092},[1079,1431,1432],{"class":1096}," JsonResponse\n",[1079,1434,1435,1437],{"class":1081,"line":1113},[1079,1436,1100],{"class":1092},[1079,1438,1439],{"class":1096}," time\n",[1079,1441,1442],{"class":1081,"line":1124},[1079,1443,1110],{"emptyLinePlaceholder":1109},[1079,1445,1446,1448],{"class":1081,"line":1155},[1079,1447,1117],{"class":1116},[1079,1449,1290],{"class":1120},[1079,1451,1452,1454,1457,1459,1462,1464,1467],{"class":1081,"line":1169},[1079,1453,1128],{"class":1127},[1079,1455,1456],{"class":1120}," long_running_task",[1079,1458,1134],{"class":1116},[1079,1460,1461],{"class":1137},"duration",[1079,1463,1141],{"class":1116},[1079,1465,1466],{"class":1137}," task_name",[1079,1468,1152],{"class":1116},[1079,1470,1471,1473,1476],{"class":1081,"line":1207},[1079,1472,1159],{"class":1158},[1079,1474,1475],{"class":1162},"Demonstrate task lifecycle.",[1079,1477,1166],{"class":1158},[1079,1479,1480,1484,1486,1489,1492,1496,1499,1502,1505],{"class":1081,"line":1251},[1079,1481,1483],{"class":1482},"sJdAF","    print",[1079,1485,1134],{"class":1116},[1079,1487,1488],{"class":1127},"f",[1079,1490,1491],{"class":1228},"\"Task ",[1079,1493,1495],{"class":1494},"s3h35","{",[1079,1497,1498],{"class":1190},"task_name",[1079,1500,1501],{"class":1494},"}",[1079,1503,1504],{"class":1228}," started\"",[1079,1506,1204],{"class":1116},[1079,1508,1509],{"class":1081,"line":1256},[1079,1510,1511],{"class":1096},"    \n",[1079,1513,1514,1517,1520,1523,1526,1528,1530],{"class":1081,"line":1262},[1079,1515,1516],{"class":1092},"    for",[1079,1518,1519],{"class":1096}," i ",[1079,1521,1522],{"class":1092},"in",[1079,1524,1525],{"class":1482}," range",[1079,1527,1134],{"class":1116},[1079,1529,1461],{"class":1190},[1079,1531,1152],{"class":1116},[1079,1533,1534,1537,1539,1542,1544,1548],{"class":1081,"line":1280},[1079,1535,1536],{"class":1096},"        time",[1079,1538,1181],{"class":1116},[1079,1540,1541],{"class":1190},"sleep",[1079,1543,1134],{"class":1116},[1079,1545,1547],{"class":1546},"s7CZa","1",[1079,1549,1204],{"class":1116},[1079,1551,1552,1555,1557,1559,1561,1563,1565,1567,1570,1572,1575,1579,1581,1583,1586,1588,1590,1592,1595],{"class":1081,"line":1285},[1079,1553,1554],{"class":1482},"        print",[1079,1556,1134],{"class":1116},[1079,1558,1488],{"class":1127},[1079,1560,1491],{"class":1228},[1079,1562,1495],{"class":1494},[1079,1564,1498],{"class":1190},[1079,1566,1501],{"class":1494},[1079,1568,1569],{"class":1228}," progress: ",[1079,1571,1495],{"class":1494},[1079,1573,1574],{"class":1190},"i",[1079,1576,1578],{"class":1577},"sVsLi","+",[1079,1580,1547],{"class":1546},[1079,1582,1501],{"class":1494},[1079,1584,1585],{"class":1228},"/",[1079,1587,1495],{"class":1494},[1079,1589,1461],{"class":1190},[1079,1591,1501],{"class":1494},[1079,1593,1594],{"class":1228},"\"",[1079,1596,1204],{"class":1116},[1079,1598,1599],{"class":1081,"line":1293},[1079,1600,1511],{"class":1096},[1079,1602,1603,1606,1608,1611,1613,1615,1617,1619,1622,1624,1626,1628],{"class":1081,"line":1315},[1079,1604,1605],{"class":1096},"    result ",[1079,1607,1175],{"class":1116},[1079,1609,1610],{"class":1127}," f",[1079,1612,1491],{"class":1228},[1079,1614,1495],{"class":1494},[1079,1616,1498],{"class":1096},[1079,1618,1501],{"class":1494},[1079,1620,1621],{"class":1228}," completed after ",[1079,1623,1495],{"class":1494},[1079,1625,1461],{"class":1096},[1079,1627,1501],{"class":1494},[1079,1629,1630],{"class":1228}," seconds\"\n",[1079,1632,1633,1635,1637,1640],{"class":1081,"line":1325},[1079,1634,1483],{"class":1482},[1079,1636,1134],{"class":1116},[1079,1638,1639],{"class":1190},"result",[1079,1641,1204],{"class":1116},[1079,1643,1644,1647],{"class":1081,"line":1352},[1079,1645,1646],{"class":1092},"    return",[1079,1648,1649],{"class":1096}," result\n",[1079,1651,1653],{"class":1081,"line":1652},18,[1079,1654,1110],{"emptyLinePlaceholder":1109},[1079,1656,1658,1660,1663,1665,1668],{"class":1081,"line":1657},19,[1079,1659,1128],{"class":1127},[1079,1661,1662],{"class":1120}," start_task_view",[1079,1664,1134],{"class":1116},[1079,1666,1667],{"class":1137},"request",[1079,1669,1152],{"class":1116},[1079,1671,1673,1675,1678],{"class":1081,"line":1672},20,[1079,1674,1159],{"class":1158},[1079,1676,1677],{"class":1162},"Start a background task.",[1079,1679,1166],{"class":1158},[1079,1681,1683],{"class":1081,"line":1682},21,[1079,1684,1685],{"class":1085},"    # Enqueue the task\n",[1079,1687,1689,1692,1694,1696,1698,1701,1703,1706,1708,1711,1714,1716],{"class":1081,"line":1688},22,[1079,1690,1691],{"class":1096},"    task_result ",[1079,1693,1175],{"class":1116},[1079,1695,1456],{"class":1096},[1079,1697,1181],{"class":1116},[1079,1699,1700],{"class":1190},"delay",[1079,1702,1134],{"class":1116},[1079,1704,1705],{"class":1546},"5",[1079,1707,1141],{"class":1116},[1079,1709,1710],{"class":1224}," \"",[1079,1712,1713],{"class":1228},"example-task",[1079,1715,1594],{"class":1224},[1079,1717,1204],{"class":1116},[1079,1719,1721],{"class":1081,"line":1720},23,[1079,1722,1511],{"class":1096},[1079,1724,1726,1728,1731],{"class":1081,"line":1725},24,[1079,1727,1646],{"class":1092},[1079,1729,1730],{"class":1190}," JsonResponse",[1079,1732,1733],{"class":1116},"({\n",[1079,1735,1737,1740,1743,1745,1748,1751,1753,1755],{"class":1081,"line":1736},25,[1079,1738,1739],{"class":1224},"        '",[1079,1741,1742],{"class":1228},"task_id",[1079,1744,1232],{"class":1224},[1079,1746,1747],{"class":1116},":",[1079,1749,1750],{"class":1190}," task_result",[1079,1752,1181],{"class":1116},[1079,1754,1197],{"class":1184},[1079,1756,1757],{"class":1116},",\n",[1079,1759,1761,1763,1766,1768,1770,1772,1775,1777],{"class":1081,"line":1760},26,[1079,1762,1739],{"class":1224},[1079,1764,1765],{"class":1228},"status",[1079,1767,1232],{"class":1224},[1079,1769,1747],{"class":1116},[1079,1771,1225],{"class":1224},[1079,1773,1774],{"class":1228},"started",[1079,1776,1232],{"class":1224},[1079,1778,1757],{"class":1116},[1079,1780,1782,1784,1787,1789,1791,1793,1796],{"class":1081,"line":1781},27,[1079,1783,1739],{"class":1224},[1079,1785,1786],{"class":1228},"message",[1079,1788,1232],{"class":1224},[1079,1790,1747],{"class":1116},[1079,1792,1225],{"class":1224},[1079,1794,1795],{"class":1228},"Task has been queued",[1079,1797,1798],{"class":1224},"'\n",[1079,1800,1802],{"class":1081,"line":1801},28,[1079,1803,1804],{"class":1116},"    })\n",[1079,1806,1808],{"class":1081,"line":1807},29,[1079,1809,1110],{"emptyLinePlaceholder":1109},[1079,1811,1813,1815,1818,1820,1822,1824,1827],{"class":1081,"line":1812},30,[1079,1814,1128],{"class":1127},[1079,1816,1817],{"class":1120}," check_task_status_view",[1079,1819,1134],{"class":1116},[1079,1821,1667],{"class":1137},[1079,1823,1141],{"class":1116},[1079,1825,1826],{"class":1137}," task_id",[1079,1828,1152],{"class":1116},[1079,1830,1832,1834,1837],{"class":1081,"line":1831},31,[1079,1833,1159],{"class":1158},[1079,1835,1836],{"class":1162},"Check task status.",[1079,1838,1166],{"class":1158},[1079,1840,1842,1845,1847,1850],{"class":1081,"line":1841},32,[1079,1843,1844],{"class":1096},"    backend ",[1079,1846,1175],{"class":1116},[1079,1848,1849],{"class":1190}," get_task_backend",[1079,1851,1852],{"class":1116},"()\n",[1079,1854,1856,1858,1860,1863,1865,1868,1870,1872],{"class":1081,"line":1855},33,[1079,1857,1691],{"class":1096},[1079,1859,1175],{"class":1116},[1079,1861,1862],{"class":1096}," backend",[1079,1864,1181],{"class":1116},[1079,1866,1867],{"class":1190},"get_result",[1079,1869,1134],{"class":1116},[1079,1871,1742],{"class":1190},[1079,1873,1204],{"class":1116},[1079,1875,1877],{"class":1081,"line":1876},34,[1079,1878,1511],{"class":1096},[1079,1880,1882,1884,1886],{"class":1081,"line":1881},35,[1079,1883,1646],{"class":1092},[1079,1885,1730],{"class":1190},[1079,1887,1733],{"class":1116},[1079,1889,1891,1893,1895,1897,1899,1901],{"class":1081,"line":1890},36,[1079,1892,1739],{"class":1224},[1079,1894,1742],{"class":1228},[1079,1896,1232],{"class":1224},[1079,1898,1747],{"class":1116},[1079,1900,1826],{"class":1190},[1079,1902,1757],{"class":1116},[1079,1904,1906,1908,1910,1912,1914,1916,1918,1920],{"class":1081,"line":1905},37,[1079,1907,1739],{"class":1224},[1079,1909,1765],{"class":1228},[1079,1911,1232],{"class":1224},[1079,1913,1747],{"class":1116},[1079,1915,1750],{"class":1190},[1079,1917,1181],{"class":1116},[1079,1919,1765],{"class":1184},[1079,1921,1757],{"class":1116},[1079,1923,1925,1927,1929,1931,1933,1935,1937,1939,1942,1944,1946,1949,1952,1955,1959],{"class":1081,"line":1924},38,[1079,1926,1739],{"class":1224},[1079,1928,1639],{"class":1228},[1079,1930,1232],{"class":1224},[1079,1932,1747],{"class":1116},[1079,1934,1750],{"class":1190},[1079,1936,1181],{"class":1116},[1079,1938,1639],{"class":1184},[1079,1940,1941],{"class":1092}," if",[1079,1943,1750],{"class":1190},[1079,1945,1181],{"class":1116},[1079,1947,1948],{"class":1190},"ready",[1079,1950,1951],{"class":1116},"()",[1079,1953,1954],{"class":1092}," else",[1079,1956,1958],{"class":1957},"s8XtY"," None",[1079,1960,1757],{"class":1116},[1079,1962,1964,1966,1969,1971,1973,1975,1977,1979,1981,1984,1986,1989,1991,1993,1995,1997,2000,2002],{"class":1081,"line":1963},39,[1079,1965,1739],{"class":1224},[1079,1967,1968],{"class":1228},"progress",[1079,1970,1232],{"class":1224},[1079,1972,1747],{"class":1116},[1079,1974,1750],{"class":1190},[1079,1976,1181],{"class":1116},[1079,1978,1968],{"class":1184},[1079,1980,1941],{"class":1092},[1079,1982,1983],{"class":1482}," hasattr",[1079,1985,1134],{"class":1116},[1079,1987,1988],{"class":1190},"task_result",[1079,1990,1141],{"class":1116},[1079,1992,1225],{"class":1224},[1079,1994,1968],{"class":1228},[1079,1996,1232],{"class":1224},[1079,1998,1999],{"class":1116},")",[1079,2001,1954],{"class":1092},[1079,2003,2004],{"class":1957}," None\n",[1079,2006,2008],{"class":1081,"line":2007},40,[1079,2009,1804],{"class":1116},[1030,2011,2013],{"id":2012},"configuring-a-task-backend","Configuring a Task Backend",[1035,2015,2017],{"id":2016},"backend-configuration","Backend Configuration",[1069,2019,2021],{"className":1071,"code":2020,"language":1073,"meta":1074,"style":1074},"# settings.py - Task backend configuration\n\n# Basic configuration\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.database.DatabaseBackend',\n        'OPTIONS': {\n            'database_alias': 'default',\n            'table_name': 'django_tasks',\n        }\n    }\n}\n\n# Redis backend configuration\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.redis.RedisBackend',\n        'OPTIONS': {\n            'connection': {\n                'host': 'localhost',\n                'port': 6379,\n                'db': 0,\n            },\n            'key_prefix': 'django_tasks:',\n        }\n    }\n}\n\n# Memory backend (development only)\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.memory.MemoryBackend',\n        'OPTIONS': {\n            'max_tasks': 1000,\n        }\n    }\n}\n\n# Multiple backends\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.database.DatabaseBackend',\n    },\n    'redis': {\n        'BACKEND': 'django.tasks.backends.redis.RedisBackend',\n        'OPTIONS': {\n            'connection': {\n                'host': 'redis.example.com',\n                'port': 6379,\n                'db': 1,\n            }\n        }\n    },\n    'priority': {\n        'BACKEND': 'django.tasks.backends.database.DatabaseBackend',\n        'OPTIONS': {\n            'table_name': 'priority_tasks',\n        }\n    }\n}\n\n# Task routing\nTASK_ROUTES = {\n    'myapp.tasks.send_email': {'backend': 'default'},\n    'myapp.tasks.process_image': {'backend': 'redis'},\n    'myapp.tasks.urgent_notification': {'backend': 'priority'},\n}\n\n# Worker configuration\nTASK_WORKERS = {\n    'default': {\n        'concurrency': 4,\n        'max_tasks_per_worker': 100,\n        'timeout': 300,  # 5 minutes\n    },\n    'redis': {\n        'concurrency': 8,\n        'max_tasks_per_worker': 50,\n        'timeout': 600,  # 10 minutes\n    }\n}\n\n# Task serialization\nTASK_SERIALIZER = 'json'  # json, pickle, msgpack\n\n# Task result expiration\nTASK_RESULT_EXPIRES = 3600  # 1 hour\n\n# Task retry configuration\nTASK_DEFAULT_RETRY_DELAY = 60  # 1 minute\nTASK_MAX_RETRIES = 3\n\n# Monitoring and logging\nTASK_SEND_EVENTS = True\nTASK_TRACK_STARTED = True\n\nLOGGING = {\n    'version': 1,\n    'disable_existing_loggers': False,\n    'handlers': {\n        'task_file': {\n            'level': 'INFO',\n            'class': 'logging.FileHandler',\n            'filename': 'tasks.log',\n        },\n    },\n    'loggers': {\n        'django.tasks': {\n            'handlers': ['task_file'],\n            'level': 'INFO',\n            'propagate': True,\n        },\n    },\n}\n",[1076,2022,2023,2028,2032,2037,2049,2063,2083,2096,2116,2136,2141,2146,2151,2155,2160,2168,2180,2199,2211,2224,2245,2261,2277,2282,2302,2306,2310,2314,2318,2323,2331,2343,2362,2374,2390,2394,2398,2402,2406,2411,2419,2432,2451,2457,2471,2490,2503,2516,2536,2551,2567,2573,2578,2583,2597,2616,2629,2649,2654,2659,2664,2669,2675,2685,2718,2748,2778,2783,2788,2794,2804,2817,2834,2851,2871,2876,2889,2905,2921,2940,2945,2950,2955,2961,2979,2984,2990,3004,3009,3015,3029,3040,3045,3051,3062,3072,3077,3087,3103,3120,3134,3148,3169,3190,3211,3217,3222,3236,3250,3272,3291,3308,3313,3318],{"__ignoreMap":1074},[1079,2024,2025],{"class":1081,"line":1082},[1079,2026,2027],{"class":1085},"# settings.py - Task backend configuration\n",[1079,2029,2030],{"class":1081,"line":1089},[1079,2031,1110],{"emptyLinePlaceholder":1109},[1079,2033,2034],{"class":1081,"line":1106},[1079,2035,2036],{"class":1085},"# Basic configuration\n",[1079,2038,2039,2043,2046],{"class":1081,"line":1113},[1079,2040,2042],{"class":2041},"se3Ec","TASKS",[1079,2044,2045],{"class":1116}," =",[1079,2047,2048],{"class":1116}," {\n",[1079,2050,2051,2054,2057,2059,2061],{"class":1081,"line":1124},[1079,2052,2053],{"class":1224},"    '",[1079,2055,2056],{"class":1228},"default",[1079,2058,1232],{"class":1224},[1079,2060,1747],{"class":1116},[1079,2062,2048],{"class":1116},[1079,2064,2065,2067,2070,2072,2074,2076,2079,2081],{"class":1081,"line":1155},[1079,2066,1739],{"class":1224},[1079,2068,2069],{"class":1228},"BACKEND",[1079,2071,1232],{"class":1224},[1079,2073,1747],{"class":1116},[1079,2075,1225],{"class":1224},[1079,2077,2078],{"class":1228},"django.tasks.backends.database.DatabaseBackend",[1079,2080,1232],{"class":1224},[1079,2082,1757],{"class":1116},[1079,2084,2085,2087,2090,2092,2094],{"class":1081,"line":1169},[1079,2086,1739],{"class":1224},[1079,2088,2089],{"class":1228},"OPTIONS",[1079,2091,1232],{"class":1224},[1079,2093,1747],{"class":1116},[1079,2095,2048],{"class":1116},[1079,2097,2098,2101,2104,2106,2108,2110,2112,2114],{"class":1081,"line":1207},[1079,2099,2100],{"class":1224},"            '",[1079,2102,2103],{"class":1228},"database_alias",[1079,2105,1232],{"class":1224},[1079,2107,1747],{"class":1116},[1079,2109,1225],{"class":1224},[1079,2111,2056],{"class":1228},[1079,2113,1232],{"class":1224},[1079,2115,1757],{"class":1116},[1079,2117,2118,2120,2123,2125,2127,2129,2132,2134],{"class":1081,"line":1251},[1079,2119,2100],{"class":1224},[1079,2121,2122],{"class":1228},"table_name",[1079,2124,1232],{"class":1224},[1079,2126,1747],{"class":1116},[1079,2128,1225],{"class":1224},[1079,2130,2131],{"class":1228},"django_tasks",[1079,2133,1232],{"class":1224},[1079,2135,1757],{"class":1116},[1079,2137,2138],{"class":1081,"line":1256},[1079,2139,2140],{"class":1116},"        }\n",[1079,2142,2143],{"class":1081,"line":1262},[1079,2144,2145],{"class":1116},"    }\n",[1079,2147,2148],{"class":1081,"line":1280},[1079,2149,2150],{"class":1116},"}\n",[1079,2152,2153],{"class":1081,"line":1285},[1079,2154,1110],{"emptyLinePlaceholder":1109},[1079,2156,2157],{"class":1081,"line":1293},[1079,2158,2159],{"class":1085},"# Redis backend configuration\n",[1079,2161,2162,2164,2166],{"class":1081,"line":1315},[1079,2163,2042],{"class":2041},[1079,2165,2045],{"class":1116},[1079,2167,2048],{"class":1116},[1079,2169,2170,2172,2174,2176,2178],{"class":1081,"line":1325},[1079,2171,2053],{"class":1224},[1079,2173,2056],{"class":1228},[1079,2175,1232],{"class":1224},[1079,2177,1747],{"class":1116},[1079,2179,2048],{"class":1116},[1079,2181,2182,2184,2186,2188,2190,2192,2195,2197],{"class":1081,"line":1352},[1079,2183,1739],{"class":1224},[1079,2185,2069],{"class":1228},[1079,2187,1232],{"class":1224},[1079,2189,1747],{"class":1116},[1079,2191,1225],{"class":1224},[1079,2193,2194],{"class":1228},"django.tasks.backends.redis.RedisBackend",[1079,2196,1232],{"class":1224},[1079,2198,1757],{"class":1116},[1079,2200,2201,2203,2205,2207,2209],{"class":1081,"line":1652},[1079,2202,1739],{"class":1224},[1079,2204,2089],{"class":1228},[1079,2206,1232],{"class":1224},[1079,2208,1747],{"class":1116},[1079,2210,2048],{"class":1116},[1079,2212,2213,2215,2218,2220,2222],{"class":1081,"line":1657},[1079,2214,2100],{"class":1224},[1079,2216,2217],{"class":1228},"connection",[1079,2219,1232],{"class":1224},[1079,2221,1747],{"class":1116},[1079,2223,2048],{"class":1116},[1079,2225,2226,2229,2232,2234,2236,2238,2241,2243],{"class":1081,"line":1672},[1079,2227,2228],{"class":1224},"                '",[1079,2230,2231],{"class":1228},"host",[1079,2233,1232],{"class":1224},[1079,2235,1747],{"class":1116},[1079,2237,1225],{"class":1224},[1079,2239,2240],{"class":1228},"localhost",[1079,2242,1232],{"class":1224},[1079,2244,1757],{"class":1116},[1079,2246,2247,2249,2252,2254,2256,2259],{"class":1081,"line":1682},[1079,2248,2228],{"class":1224},[1079,2250,2251],{"class":1228},"port",[1079,2253,1232],{"class":1224},[1079,2255,1747],{"class":1116},[1079,2257,2258],{"class":1546}," 6379",[1079,2260,1757],{"class":1116},[1079,2262,2263,2265,2268,2270,2272,2275],{"class":1081,"line":1688},[1079,2264,2228],{"class":1224},[1079,2266,2267],{"class":1228},"db",[1079,2269,1232],{"class":1224},[1079,2271,1747],{"class":1116},[1079,2273,2274],{"class":1546}," 0",[1079,2276,1757],{"class":1116},[1079,2278,2279],{"class":1081,"line":1720},[1079,2280,2281],{"class":1116},"            },\n",[1079,2283,2284,2286,2289,2291,2293,2295,2298,2300],{"class":1081,"line":1725},[1079,2285,2100],{"class":1224},[1079,2287,2288],{"class":1228},"key_prefix",[1079,2290,1232],{"class":1224},[1079,2292,1747],{"class":1116},[1079,2294,1225],{"class":1224},[1079,2296,2297],{"class":1228},"django_tasks:",[1079,2299,1232],{"class":1224},[1079,2301,1757],{"class":1116},[1079,2303,2304],{"class":1081,"line":1736},[1079,2305,2140],{"class":1116},[1079,2307,2308],{"class":1081,"line":1760},[1079,2309,2145],{"class":1116},[1079,2311,2312],{"class":1081,"line":1781},[1079,2313,2150],{"class":1116},[1079,2315,2316],{"class":1081,"line":1801},[1079,2317,1110],{"emptyLinePlaceholder":1109},[1079,2319,2320],{"class":1081,"line":1807},[1079,2321,2322],{"class":1085},"# Memory backend (development only)\n",[1079,2324,2325,2327,2329],{"class":1081,"line":1812},[1079,2326,2042],{"class":2041},[1079,2328,2045],{"class":1116},[1079,2330,2048],{"class":1116},[1079,2332,2333,2335,2337,2339,2341],{"class":1081,"line":1831},[1079,2334,2053],{"class":1224},[1079,2336,2056],{"class":1228},[1079,2338,1232],{"class":1224},[1079,2340,1747],{"class":1116},[1079,2342,2048],{"class":1116},[1079,2344,2345,2347,2349,2351,2353,2355,2358,2360],{"class":1081,"line":1841},[1079,2346,1739],{"class":1224},[1079,2348,2069],{"class":1228},[1079,2350,1232],{"class":1224},[1079,2352,1747],{"class":1116},[1079,2354,1225],{"class":1224},[1079,2356,2357],{"class":1228},"django.tasks.backends.memory.MemoryBackend",[1079,2359,1232],{"class":1224},[1079,2361,1757],{"class":1116},[1079,2363,2364,2366,2368,2370,2372],{"class":1081,"line":1855},[1079,2365,1739],{"class":1224},[1079,2367,2089],{"class":1228},[1079,2369,1232],{"class":1224},[1079,2371,1747],{"class":1116},[1079,2373,2048],{"class":1116},[1079,2375,2376,2378,2381,2383,2385,2388],{"class":1081,"line":1876},[1079,2377,2100],{"class":1224},[1079,2379,2380],{"class":1228},"max_tasks",[1079,2382,1232],{"class":1224},[1079,2384,1747],{"class":1116},[1079,2386,2387],{"class":1546}," 1000",[1079,2389,1757],{"class":1116},[1079,2391,2392],{"class":1081,"line":1881},[1079,2393,2140],{"class":1116},[1079,2395,2396],{"class":1081,"line":1890},[1079,2397,2145],{"class":1116},[1079,2399,2400],{"class":1081,"line":1905},[1079,2401,2150],{"class":1116},[1079,2403,2404],{"class":1081,"line":1924},[1079,2405,1110],{"emptyLinePlaceholder":1109},[1079,2407,2408],{"class":1081,"line":1963},[1079,2409,2410],{"class":1085},"# Multiple backends\n",[1079,2412,2413,2415,2417],{"class":1081,"line":2007},[1079,2414,2042],{"class":2041},[1079,2416,2045],{"class":1116},[1079,2418,2048],{"class":1116},[1079,2420,2422,2424,2426,2428,2430],{"class":1081,"line":2421},41,[1079,2423,2053],{"class":1224},[1079,2425,2056],{"class":1228},[1079,2427,1232],{"class":1224},[1079,2429,1747],{"class":1116},[1079,2431,2048],{"class":1116},[1079,2433,2435,2437,2439,2441,2443,2445,2447,2449],{"class":1081,"line":2434},42,[1079,2436,1739],{"class":1224},[1079,2438,2069],{"class":1228},[1079,2440,1232],{"class":1224},[1079,2442,1747],{"class":1116},[1079,2444,1225],{"class":1224},[1079,2446,2078],{"class":1228},[1079,2448,1232],{"class":1224},[1079,2450,1757],{"class":1116},[1079,2452,2454],{"class":1081,"line":2453},43,[1079,2455,2456],{"class":1116},"    },\n",[1079,2458,2460,2462,2465,2467,2469],{"class":1081,"line":2459},44,[1079,2461,2053],{"class":1224},[1079,2463,2464],{"class":1228},"redis",[1079,2466,1232],{"class":1224},[1079,2468,1747],{"class":1116},[1079,2470,2048],{"class":1116},[1079,2472,2474,2476,2478,2480,2482,2484,2486,2488],{"class":1081,"line":2473},45,[1079,2475,1739],{"class":1224},[1079,2477,2069],{"class":1228},[1079,2479,1232],{"class":1224},[1079,2481,1747],{"class":1116},[1079,2483,1225],{"class":1224},[1079,2485,2194],{"class":1228},[1079,2487,1232],{"class":1224},[1079,2489,1757],{"class":1116},[1079,2491,2493,2495,2497,2499,2501],{"class":1081,"line":2492},46,[1079,2494,1739],{"class":1224},[1079,2496,2089],{"class":1228},[1079,2498,1232],{"class":1224},[1079,2500,1747],{"class":1116},[1079,2502,2048],{"class":1116},[1079,2504,2506,2508,2510,2512,2514],{"class":1081,"line":2505},47,[1079,2507,2100],{"class":1224},[1079,2509,2217],{"class":1228},[1079,2511,1232],{"class":1224},[1079,2513,1747],{"class":1116},[1079,2515,2048],{"class":1116},[1079,2517,2519,2521,2523,2525,2527,2529,2532,2534],{"class":1081,"line":2518},48,[1079,2520,2228],{"class":1224},[1079,2522,2231],{"class":1228},[1079,2524,1232],{"class":1224},[1079,2526,1747],{"class":1116},[1079,2528,1225],{"class":1224},[1079,2530,2531],{"class":1228},"redis.example.com",[1079,2533,1232],{"class":1224},[1079,2535,1757],{"class":1116},[1079,2537,2539,2541,2543,2545,2547,2549],{"class":1081,"line":2538},49,[1079,2540,2228],{"class":1224},[1079,2542,2251],{"class":1228},[1079,2544,1232],{"class":1224},[1079,2546,1747],{"class":1116},[1079,2548,2258],{"class":1546},[1079,2550,1757],{"class":1116},[1079,2552,2554,2556,2558,2560,2562,2565],{"class":1081,"line":2553},50,[1079,2555,2228],{"class":1224},[1079,2557,2267],{"class":1228},[1079,2559,1232],{"class":1224},[1079,2561,1747],{"class":1116},[1079,2563,2564],{"class":1546}," 1",[1079,2566,1757],{"class":1116},[1079,2568,2570],{"class":1081,"line":2569},51,[1079,2571,2572],{"class":1116},"            }\n",[1079,2574,2576],{"class":1081,"line":2575},52,[1079,2577,2140],{"class":1116},[1079,2579,2581],{"class":1081,"line":2580},53,[1079,2582,2456],{"class":1116},[1079,2584,2586,2588,2591,2593,2595],{"class":1081,"line":2585},54,[1079,2587,2053],{"class":1224},[1079,2589,2590],{"class":1228},"priority",[1079,2592,1232],{"class":1224},[1079,2594,1747],{"class":1116},[1079,2596,2048],{"class":1116},[1079,2598,2600,2602,2604,2606,2608,2610,2612,2614],{"class":1081,"line":2599},55,[1079,2601,1739],{"class":1224},[1079,2603,2069],{"class":1228},[1079,2605,1232],{"class":1224},[1079,2607,1747],{"class":1116},[1079,2609,1225],{"class":1224},[1079,2611,2078],{"class":1228},[1079,2613,1232],{"class":1224},[1079,2615,1757],{"class":1116},[1079,2617,2619,2621,2623,2625,2627],{"class":1081,"line":2618},56,[1079,2620,1739],{"class":1224},[1079,2622,2089],{"class":1228},[1079,2624,1232],{"class":1224},[1079,2626,1747],{"class":1116},[1079,2628,2048],{"class":1116},[1079,2630,2632,2634,2636,2638,2640,2642,2645,2647],{"class":1081,"line":2631},57,[1079,2633,2100],{"class":1224},[1079,2635,2122],{"class":1228},[1079,2637,1232],{"class":1224},[1079,2639,1747],{"class":1116},[1079,2641,1225],{"class":1224},[1079,2643,2644],{"class":1228},"priority_tasks",[1079,2646,1232],{"class":1224},[1079,2648,1757],{"class":1116},[1079,2650,2652],{"class":1081,"line":2651},58,[1079,2653,2140],{"class":1116},[1079,2655,2657],{"class":1081,"line":2656},59,[1079,2658,2145],{"class":1116},[1079,2660,2662],{"class":1081,"line":2661},60,[1079,2663,2150],{"class":1116},[1079,2665,2667],{"class":1081,"line":2666},61,[1079,2668,1110],{"emptyLinePlaceholder":1109},[1079,2670,2672],{"class":1081,"line":2671},62,[1079,2673,2674],{"class":1085},"# Task routing\n",[1079,2676,2678,2681,2683],{"class":1081,"line":2677},63,[1079,2679,2680],{"class":2041},"TASK_ROUTES",[1079,2682,2045],{"class":1116},[1079,2684,2048],{"class":1116},[1079,2686,2688,2690,2693,2695,2697,2700,2702,2705,2707,2709,2711,2713,2715],{"class":1081,"line":2687},64,[1079,2689,2053],{"class":1224},[1079,2691,2692],{"class":1228},"myapp.tasks.send_email",[1079,2694,1232],{"class":1224},[1079,2696,1747],{"class":1116},[1079,2698,2699],{"class":1116}," {",[1079,2701,1232],{"class":1224},[1079,2703,2704],{"class":1228},"backend",[1079,2706,1232],{"class":1224},[1079,2708,1747],{"class":1116},[1079,2710,1225],{"class":1224},[1079,2712,2056],{"class":1228},[1079,2714,1232],{"class":1224},[1079,2716,2717],{"class":1116},"},\n",[1079,2719,2721,2723,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746],{"class":1081,"line":2720},65,[1079,2722,2053],{"class":1224},[1079,2724,2725],{"class":1228},"myapp.tasks.process_image",[1079,2727,1232],{"class":1224},[1079,2729,1747],{"class":1116},[1079,2731,2699],{"class":1116},[1079,2733,1232],{"class":1224},[1079,2735,2704],{"class":1228},[1079,2737,1232],{"class":1224},[1079,2739,1747],{"class":1116},[1079,2741,1225],{"class":1224},[1079,2743,2464],{"class":1228},[1079,2745,1232],{"class":1224},[1079,2747,2717],{"class":1116},[1079,2749,2751,2753,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776],{"class":1081,"line":2750},66,[1079,2752,2053],{"class":1224},[1079,2754,2755],{"class":1228},"myapp.tasks.urgent_notification",[1079,2757,1232],{"class":1224},[1079,2759,1747],{"class":1116},[1079,2761,2699],{"class":1116},[1079,2763,1232],{"class":1224},[1079,2765,2704],{"class":1228},[1079,2767,1232],{"class":1224},[1079,2769,1747],{"class":1116},[1079,2771,1225],{"class":1224},[1079,2773,2590],{"class":1228},[1079,2775,1232],{"class":1224},[1079,2777,2717],{"class":1116},[1079,2779,2781],{"class":1081,"line":2780},67,[1079,2782,2150],{"class":1116},[1079,2784,2786],{"class":1081,"line":2785},68,[1079,2787,1110],{"emptyLinePlaceholder":1109},[1079,2789,2791],{"class":1081,"line":2790},69,[1079,2792,2793],{"class":1085},"# Worker configuration\n",[1079,2795,2797,2800,2802],{"class":1081,"line":2796},70,[1079,2798,2799],{"class":2041},"TASK_WORKERS",[1079,2801,2045],{"class":1116},[1079,2803,2048],{"class":1116},[1079,2805,2807,2809,2811,2813,2815],{"class":1081,"line":2806},71,[1079,2808,2053],{"class":1224},[1079,2810,2056],{"class":1228},[1079,2812,1232],{"class":1224},[1079,2814,1747],{"class":1116},[1079,2816,2048],{"class":1116},[1079,2818,2820,2822,2825,2827,2829,2832],{"class":1081,"line":2819},72,[1079,2821,1739],{"class":1224},[1079,2823,2824],{"class":1228},"concurrency",[1079,2826,1232],{"class":1224},[1079,2828,1747],{"class":1116},[1079,2830,2831],{"class":1546}," 4",[1079,2833,1757],{"class":1116},[1079,2835,2837,2839,2842,2844,2846,2849],{"class":1081,"line":2836},73,[1079,2838,1739],{"class":1224},[1079,2840,2841],{"class":1228},"max_tasks_per_worker",[1079,2843,1232],{"class":1224},[1079,2845,1747],{"class":1116},[1079,2847,2848],{"class":1546}," 100",[1079,2850,1757],{"class":1116},[1079,2852,2854,2856,2859,2861,2863,2866,2868],{"class":1081,"line":2853},74,[1079,2855,1739],{"class":1224},[1079,2857,2858],{"class":1228},"timeout",[1079,2860,1232],{"class":1224},[1079,2862,1747],{"class":1116},[1079,2864,2865],{"class":1546}," 300",[1079,2867,1141],{"class":1116},[1079,2869,2870],{"class":1085},"  # 5 minutes\n",[1079,2872,2874],{"class":1081,"line":2873},75,[1079,2875,2456],{"class":1116},[1079,2877,2879,2881,2883,2885,2887],{"class":1081,"line":2878},76,[1079,2880,2053],{"class":1224},[1079,2882,2464],{"class":1228},[1079,2884,1232],{"class":1224},[1079,2886,1747],{"class":1116},[1079,2888,2048],{"class":1116},[1079,2890,2892,2894,2896,2898,2900,2903],{"class":1081,"line":2891},77,[1079,2893,1739],{"class":1224},[1079,2895,2824],{"class":1228},[1079,2897,1232],{"class":1224},[1079,2899,1747],{"class":1116},[1079,2901,2902],{"class":1546}," 8",[1079,2904,1757],{"class":1116},[1079,2906,2908,2910,2912,2914,2916,2919],{"class":1081,"line":2907},78,[1079,2909,1739],{"class":1224},[1079,2911,2841],{"class":1228},[1079,2913,1232],{"class":1224},[1079,2915,1747],{"class":1116},[1079,2917,2918],{"class":1546}," 50",[1079,2920,1757],{"class":1116},[1079,2922,2924,2926,2928,2930,2932,2935,2937],{"class":1081,"line":2923},79,[1079,2925,1739],{"class":1224},[1079,2927,2858],{"class":1228},[1079,2929,1232],{"class":1224},[1079,2931,1747],{"class":1116},[1079,2933,2934],{"class":1546}," 600",[1079,2936,1141],{"class":1116},[1079,2938,2939],{"class":1085},"  # 10 minutes\n",[1079,2941,2943],{"class":1081,"line":2942},80,[1079,2944,2145],{"class":1116},[1079,2946,2948],{"class":1081,"line":2947},81,[1079,2949,2150],{"class":1116},[1079,2951,2953],{"class":1081,"line":2952},82,[1079,2954,1110],{"emptyLinePlaceholder":1109},[1079,2956,2958],{"class":1081,"line":2957},83,[1079,2959,2960],{"class":1085},"# Task serialization\n",[1079,2962,2964,2967,2969,2971,2974,2976],{"class":1081,"line":2963},84,[1079,2965,2966],{"class":2041},"TASK_SERIALIZER",[1079,2968,2045],{"class":1116},[1079,2970,1225],{"class":1224},[1079,2972,2973],{"class":1228},"json",[1079,2975,1232],{"class":1224},[1079,2977,2978],{"class":1085},"  # json, pickle, msgpack\n",[1079,2980,2982],{"class":1081,"line":2981},85,[1079,2983,1110],{"emptyLinePlaceholder":1109},[1079,2985,2987],{"class":1081,"line":2986},86,[1079,2988,2989],{"class":1085},"# Task result expiration\n",[1079,2991,2993,2996,2998,3001],{"class":1081,"line":2992},87,[1079,2994,2995],{"class":2041},"TASK_RESULT_EXPIRES",[1079,2997,2045],{"class":1116},[1079,2999,3000],{"class":1546}," 3600",[1079,3002,3003],{"class":1085},"  # 1 hour\n",[1079,3005,3007],{"class":1081,"line":3006},88,[1079,3008,1110],{"emptyLinePlaceholder":1109},[1079,3010,3012],{"class":1081,"line":3011},89,[1079,3013,3014],{"class":1085},"# Task retry configuration\n",[1079,3016,3018,3021,3023,3026],{"class":1081,"line":3017},90,[1079,3019,3020],{"class":2041},"TASK_DEFAULT_RETRY_DELAY",[1079,3022,2045],{"class":1116},[1079,3024,3025],{"class":1546}," 60",[1079,3027,3028],{"class":1085},"  # 1 minute\n",[1079,3030,3032,3035,3037],{"class":1081,"line":3031},91,[1079,3033,3034],{"class":2041},"TASK_MAX_RETRIES",[1079,3036,2045],{"class":1116},[1079,3038,3039],{"class":1546}," 3\n",[1079,3041,3043],{"class":1081,"line":3042},92,[1079,3044,1110],{"emptyLinePlaceholder":1109},[1079,3046,3048],{"class":1081,"line":3047},93,[1079,3049,3050],{"class":1085},"# Monitoring and logging\n",[1079,3052,3054,3057,3059],{"class":1081,"line":3053},94,[1079,3055,3056],{"class":2041},"TASK_SEND_EVENTS",[1079,3058,2045],{"class":1116},[1079,3060,3061],{"class":1957}," True\n",[1079,3063,3065,3068,3070],{"class":1081,"line":3064},95,[1079,3066,3067],{"class":2041},"TASK_TRACK_STARTED",[1079,3069,2045],{"class":1116},[1079,3071,3061],{"class":1957},[1079,3073,3075],{"class":1081,"line":3074},96,[1079,3076,1110],{"emptyLinePlaceholder":1109},[1079,3078,3080,3083,3085],{"class":1081,"line":3079},97,[1079,3081,3082],{"class":2041},"LOGGING",[1079,3084,2045],{"class":1116},[1079,3086,2048],{"class":1116},[1079,3088,3090,3092,3095,3097,3099,3101],{"class":1081,"line":3089},98,[1079,3091,2053],{"class":1224},[1079,3093,3094],{"class":1228},"version",[1079,3096,1232],{"class":1224},[1079,3098,1747],{"class":1116},[1079,3100,2564],{"class":1546},[1079,3102,1757],{"class":1116},[1079,3104,3106,3108,3111,3113,3115,3118],{"class":1081,"line":3105},99,[1079,3107,2053],{"class":1224},[1079,3109,3110],{"class":1228},"disable_existing_loggers",[1079,3112,1232],{"class":1224},[1079,3114,1747],{"class":1116},[1079,3116,3117],{"class":1957}," False",[1079,3119,1757],{"class":1116},[1079,3121,3123,3125,3128,3130,3132],{"class":1081,"line":3122},100,[1079,3124,2053],{"class":1224},[1079,3126,3127],{"class":1228},"handlers",[1079,3129,1232],{"class":1224},[1079,3131,1747],{"class":1116},[1079,3133,2048],{"class":1116},[1079,3135,3137,3139,3142,3144,3146],{"class":1081,"line":3136},101,[1079,3138,1739],{"class":1224},[1079,3140,3141],{"class":1228},"task_file",[1079,3143,1232],{"class":1224},[1079,3145,1747],{"class":1116},[1079,3147,2048],{"class":1116},[1079,3149,3151,3153,3156,3158,3160,3162,3165,3167],{"class":1081,"line":3150},102,[1079,3152,2100],{"class":1224},[1079,3154,3155],{"class":1228},"level",[1079,3157,1232],{"class":1224},[1079,3159,1747],{"class":1116},[1079,3161,1225],{"class":1224},[1079,3163,3164],{"class":1228},"INFO",[1079,3166,1232],{"class":1224},[1079,3168,1757],{"class":1116},[1079,3170,3172,3174,3177,3179,3181,3183,3186,3188],{"class":1081,"line":3171},103,[1079,3173,2100],{"class":1224},[1079,3175,3176],{"class":1228},"class",[1079,3178,1232],{"class":1224},[1079,3180,1747],{"class":1116},[1079,3182,1225],{"class":1224},[1079,3184,3185],{"class":1228},"logging.FileHandler",[1079,3187,1232],{"class":1224},[1079,3189,1757],{"class":1116},[1079,3191,3193,3195,3198,3200,3202,3204,3207,3209],{"class":1081,"line":3192},104,[1079,3194,2100],{"class":1224},[1079,3196,3197],{"class":1228},"filename",[1079,3199,1232],{"class":1224},[1079,3201,1747],{"class":1116},[1079,3203,1225],{"class":1224},[1079,3205,3206],{"class":1228},"tasks.log",[1079,3208,1232],{"class":1224},[1079,3210,1757],{"class":1116},[1079,3212,3214],{"class":1081,"line":3213},105,[1079,3215,3216],{"class":1116},"        },\n",[1079,3218,3220],{"class":1081,"line":3219},106,[1079,3221,2456],{"class":1116},[1079,3223,3225,3227,3230,3232,3234],{"class":1081,"line":3224},107,[1079,3226,2053],{"class":1224},[1079,3228,3229],{"class":1228},"loggers",[1079,3231,1232],{"class":1224},[1079,3233,1747],{"class":1116},[1079,3235,2048],{"class":1116},[1079,3237,3239,3241,3244,3246,3248],{"class":1081,"line":3238},108,[1079,3240,1739],{"class":1224},[1079,3242,3243],{"class":1228},"django.tasks",[1079,3245,1232],{"class":1224},[1079,3247,1747],{"class":1116},[1079,3249,2048],{"class":1116},[1079,3251,3253,3255,3257,3259,3261,3263,3265,3267,3269],{"class":1081,"line":3252},109,[1079,3254,2100],{"class":1224},[1079,3256,3127],{"class":1228},[1079,3258,1232],{"class":1224},[1079,3260,1747],{"class":1116},[1079,3262,1237],{"class":1116},[1079,3264,1232],{"class":1224},[1079,3266,3141],{"class":1228},[1079,3268,1232],{"class":1224},[1079,3270,3271],{"class":1116},"],\n",[1079,3273,3275,3277,3279,3281,3283,3285,3287,3289],{"class":1081,"line":3274},110,[1079,3276,2100],{"class":1224},[1079,3278,3155],{"class":1228},[1079,3280,1232],{"class":1224},[1079,3282,1747],{"class":1116},[1079,3284,1225],{"class":1224},[1079,3286,3164],{"class":1228},[1079,3288,1232],{"class":1224},[1079,3290,1757],{"class":1116},[1079,3292,3294,3296,3299,3301,3303,3306],{"class":1081,"line":3293},111,[1079,3295,2100],{"class":1224},[1079,3297,3298],{"class":1228},"propagate",[1079,3300,1232],{"class":1224},[1079,3302,1747],{"class":1116},[1079,3304,3305],{"class":1957}," True",[1079,3307,1757],{"class":1116},[1079,3309,3311],{"class":1081,"line":3310},112,[1079,3312,3216],{"class":1116},[1079,3314,3316],{"class":1081,"line":3315},113,[1079,3317,2456],{"class":1116},[1079,3319,3321],{"class":1081,"line":3320},114,[1079,3322,2150],{"class":1116},[1035,3324,3326],{"id":3325},"database-backend-setup","Database Backend Setup",[1069,3328,3330],{"className":1071,"code":3329,"language":1073,"meta":1074,"style":1074},"# models.py - Custom task model for database backend\nfrom django.db import models\nfrom django.tasks.backends.database.models import TaskResult\n\nclass CustomTaskResult(TaskResult):\n    \"\"\"Extended task result model.\"\"\"\n    \n    priority = models.IntegerField(default=0)\n    category = models.CharField(max_length=50, blank=True)\n    created_by = models.ForeignKey(\n        'auth.User', \n        on_delete=models.SET_NULL, \n        null=True, \n        blank=True\n    )\n    \n    class Meta:\n        db_table = 'custom_task_results'\n        indexes = [\n            models.Index(fields=['priority', 'status']),\n            models.Index(fields=['category', 'created_at']),\n        ]\n\n# Custom backend using extended model\nclass CustomDatabaseBackend(DatabaseBackend):\n    \"\"\"Custom database backend with extended functionality.\"\"\"\n    \n    def __init__(self, **options):\n        super().__init__(**options)\n        self.model = CustomTaskResult\n    \n    def store_result(self, task_id, result, status, **kwargs):\n        \"\"\"Store task result with additional metadata.\"\"\"\n        return super().store_result(\n            task_id, \n            result, \n            status,\n            priority=kwargs.get('priority', 0),\n            category=kwargs.get('category', ''),\n            created_by_id=kwargs.get('user_id')\n        )\n\n# settings.py - Use custom backend\nTASKS = {\n    'default': {\n        'BACKEND': 'myapp.backends.CustomDatabaseBackend',\n        'OPTIONS': {\n            'database_alias': 'default',\n        }\n    }\n}\n",[1076,3331,3332,3337,3353,3384,3388,3404,3413,3417,3443,3479,3496,3510,3530,3543,3553,3558,3562,3573,3587,3597,3632,3664,3669,3673,3678,3692,3701,3705,3729,3750,3765,3769,3803,3813,3828,3837,3846,3853,3881,3909,3932,3937,3941,3946,3954,3966,3985,3997,4015,4019,4023],{"__ignoreMap":1074},[1079,3333,3334],{"class":1081,"line":1082},[1079,3335,3336],{"class":1085},"# models.py - Custom task model for database backend\n",[1079,3338,3339,3341,3343,3345,3348,3350],{"class":1081,"line":1089},[1079,3340,1093],{"class":1092},[1079,3342,1267],{"class":1096},[1079,3344,1181],{"class":1116},[1079,3346,3347],{"class":1096},"db ",[1079,3349,1100],{"class":1092},[1079,3351,3352],{"class":1096}," models\n",[1079,3354,3355,3357,3359,3361,3364,3366,3369,3371,3374,3376,3379,3381],{"class":1081,"line":1106},[1079,3356,1093],{"class":1092},[1079,3358,1267],{"class":1096},[1079,3360,1181],{"class":1116},[1079,3362,3363],{"class":1096},"tasks",[1079,3365,1181],{"class":1116},[1079,3367,3368],{"class":1096},"backends",[1079,3370,1181],{"class":1116},[1079,3372,3373],{"class":1096},"database",[1079,3375,1181],{"class":1116},[1079,3377,3378],{"class":1096},"models ",[1079,3380,1100],{"class":1092},[1079,3382,3383],{"class":1096}," TaskResult\n",[1079,3385,3386],{"class":1081,"line":1113},[1079,3387,1110],{"emptyLinePlaceholder":1109},[1079,3389,3390,3392,3396,3398,3402],{"class":1081,"line":1124},[1079,3391,3176],{"class":1127},[1079,3393,3395],{"class":3394},"sD-vU"," CustomTaskResult",[1079,3397,1134],{"class":1116},[1079,3399,3401],{"class":3400},"sYn-s","TaskResult",[1079,3403,1152],{"class":1116},[1079,3405,3406,3408,3411],{"class":1081,"line":1155},[1079,3407,1159],{"class":1158},[1079,3409,3410],{"class":1162},"Extended task result model.",[1079,3412,1166],{"class":1158},[1079,3414,3415],{"class":1081,"line":1169},[1079,3416,1511],{"class":1096},[1079,3418,3419,3422,3424,3427,3429,3432,3434,3436,3438,3441],{"class":1081,"line":1207},[1079,3420,3421],{"class":1096},"    priority ",[1079,3423,1175],{"class":1116},[1079,3425,3426],{"class":1096}," models",[1079,3428,1181],{"class":1116},[1079,3430,3431],{"class":1190},"IntegerField",[1079,3433,1134],{"class":1116},[1079,3435,2056],{"class":1196},[1079,3437,1175],{"class":1116},[1079,3439,3440],{"class":1546},"0",[1079,3442,1204],{"class":1116},[1079,3444,3445,3448,3450,3452,3454,3457,3459,3462,3464,3467,3469,3472,3474,3477],{"class":1081,"line":1251},[1079,3446,3447],{"class":1096},"    category ",[1079,3449,1175],{"class":1116},[1079,3451,3426],{"class":1096},[1079,3453,1181],{"class":1116},[1079,3455,3456],{"class":1190},"CharField",[1079,3458,1134],{"class":1116},[1079,3460,3461],{"class":1196},"max_length",[1079,3463,1175],{"class":1116},[1079,3465,3466],{"class":1546},"50",[1079,3468,1141],{"class":1116},[1079,3470,3471],{"class":1196}," blank",[1079,3473,1175],{"class":1116},[1079,3475,3476],{"class":1957},"True",[1079,3478,1204],{"class":1116},[1079,3480,3481,3484,3486,3488,3490,3493],{"class":1081,"line":1256},[1079,3482,3483],{"class":1096},"    created_by ",[1079,3485,1175],{"class":1116},[1079,3487,3426],{"class":1096},[1079,3489,1181],{"class":1116},[1079,3491,3492],{"class":1190},"ForeignKey",[1079,3494,3495],{"class":1116},"(\n",[1079,3497,3498,3500,3503,3505,3507],{"class":1081,"line":1262},[1079,3499,1739],{"class":1224},[1079,3501,3502],{"class":1228},"auth.User",[1079,3504,1232],{"class":1224},[1079,3506,1141],{"class":1116},[1079,3508,3509],{"class":1190}," \n",[1079,3511,3512,3515,3517,3520,3522,3526,3528],{"class":1081,"line":1280},[1079,3513,3514],{"class":1196},"        on_delete",[1079,3516,1175],{"class":1116},[1079,3518,3519],{"class":1190},"models",[1079,3521,1181],{"class":1116},[1079,3523,3525],{"class":3524},"sFGJz","SET_NULL",[1079,3527,1141],{"class":1116},[1079,3529,3509],{"class":1190},[1079,3531,3532,3535,3537,3539,3541],{"class":1081,"line":1285},[1079,3533,3534],{"class":1196},"        null",[1079,3536,1175],{"class":1116},[1079,3538,3476],{"class":1957},[1079,3540,1141],{"class":1116},[1079,3542,3509],{"class":1190},[1079,3544,3545,3548,3550],{"class":1081,"line":1293},[1079,3546,3547],{"class":1196},"        blank",[1079,3549,1175],{"class":1116},[1079,3551,3552],{"class":1957},"True\n",[1079,3554,3555],{"class":1081,"line":1315},[1079,3556,3557],{"class":1116},"    )\n",[1079,3559,3560],{"class":1081,"line":1325},[1079,3561,1511],{"class":1096},[1079,3563,3564,3567,3570],{"class":1081,"line":1352},[1079,3565,3566],{"class":1127},"    class",[1079,3568,3569],{"class":3394}," Meta",[1079,3571,3572],{"class":1116},":\n",[1079,3574,3575,3578,3580,3582,3585],{"class":1081,"line":1652},[1079,3576,3577],{"class":1096},"        db_table ",[1079,3579,1175],{"class":1116},[1079,3581,1225],{"class":1224},[1079,3583,3584],{"class":1228},"custom_task_results",[1079,3586,1798],{"class":1224},[1079,3588,3589,3592,3594],{"class":1081,"line":1657},[1079,3590,3591],{"class":1096},"        indexes ",[1079,3593,1175],{"class":1116},[1079,3595,3596],{"class":1116}," [\n",[1079,3598,3599,3602,3604,3607,3609,3612,3615,3617,3619,3621,3623,3625,3627,3629],{"class":1081,"line":1672},[1079,3600,3601],{"class":1096},"            models",[1079,3603,1181],{"class":1116},[1079,3605,3606],{"class":1190},"Index",[1079,3608,1134],{"class":1116},[1079,3610,3611],{"class":1196},"fields",[1079,3613,3614],{"class":1116},"=[",[1079,3616,1232],{"class":1224},[1079,3618,2590],{"class":1228},[1079,3620,1232],{"class":1224},[1079,3622,1141],{"class":1116},[1079,3624,1225],{"class":1224},[1079,3626,1765],{"class":1228},[1079,3628,1232],{"class":1224},[1079,3630,3631],{"class":1116},"]),\n",[1079,3633,3634,3636,3638,3640,3642,3644,3646,3648,3651,3653,3655,3657,3660,3662],{"class":1081,"line":1682},[1079,3635,3601],{"class":1096},[1079,3637,1181],{"class":1116},[1079,3639,3606],{"class":1190},[1079,3641,1134],{"class":1116},[1079,3643,3611],{"class":1196},[1079,3645,3614],{"class":1116},[1079,3647,1232],{"class":1224},[1079,3649,3650],{"class":1228},"category",[1079,3652,1232],{"class":1224},[1079,3654,1141],{"class":1116},[1079,3656,1225],{"class":1224},[1079,3658,3659],{"class":1228},"created_at",[1079,3661,1232],{"class":1224},[1079,3663,3631],{"class":1116},[1079,3665,3666],{"class":1081,"line":1688},[1079,3667,3668],{"class":1116},"        ]\n",[1079,3670,3671],{"class":1081,"line":1720},[1079,3672,1110],{"emptyLinePlaceholder":1109},[1079,3674,3675],{"class":1081,"line":1725},[1079,3676,3677],{"class":1085},"# Custom backend using extended model\n",[1079,3679,3680,3682,3685,3687,3690],{"class":1081,"line":1736},[1079,3681,3176],{"class":1127},[1079,3683,3684],{"class":3394}," CustomDatabaseBackend",[1079,3686,1134],{"class":1116},[1079,3688,3689],{"class":3400},"DatabaseBackend",[1079,3691,1152],{"class":1116},[1079,3693,3694,3696,3699],{"class":1081,"line":1760},[1079,3695,1159],{"class":1158},[1079,3697,3698],{"class":1162},"Custom database backend with extended functionality.",[1079,3700,1166],{"class":1158},[1079,3702,3703],{"class":1081,"line":1781},[1079,3704,1511],{"class":1096},[1079,3706,3707,3710,3713,3715,3719,3721,3724,3727],{"class":1081,"line":1801},[1079,3708,3709],{"class":1127},"    def",[1079,3711,3712],{"class":1482}," __init__",[1079,3714,1134],{"class":1116},[1079,3716,3718],{"class":3717},"sRjD_","self",[1079,3720,1141],{"class":1116},[1079,3722,3723],{"class":1577}," **",[1079,3725,3726],{"class":1137},"options",[1079,3728,1152],{"class":1116},[1079,3730,3731,3735,3738,3741,3743,3746,3748],{"class":1081,"line":1807},[1079,3732,3734],{"class":3733},"sa2tF","        super",[1079,3736,3737],{"class":1116},"().",[1079,3739,3740],{"class":1482},"__init__",[1079,3742,1134],{"class":1116},[1079,3744,3745],{"class":1577},"**",[1079,3747,3726],{"class":1190},[1079,3749,1204],{"class":1116},[1079,3751,3752,3755,3757,3760,3762],{"class":1081,"line":1812},[1079,3753,3754],{"class":2041},"        self",[1079,3756,1181],{"class":1116},[1079,3758,3759],{"class":1184},"model",[1079,3761,2045],{"class":1116},[1079,3763,3764],{"class":1096}," CustomTaskResult\n",[1079,3766,3767],{"class":1081,"line":1831},[1079,3768,1511],{"class":1096},[1079,3770,3771,3773,3776,3778,3780,3782,3784,3786,3789,3791,3794,3796,3798,3801],{"class":1081,"line":1841},[1079,3772,3709],{"class":1127},[1079,3774,3775],{"class":1120}," store_result",[1079,3777,1134],{"class":1116},[1079,3779,3718],{"class":3717},[1079,3781,1141],{"class":1116},[1079,3783,1826],{"class":1137},[1079,3785,1141],{"class":1116},[1079,3787,3788],{"class":1137}," result",[1079,3790,1141],{"class":1116},[1079,3792,3793],{"class":1137}," status",[1079,3795,1141],{"class":1116},[1079,3797,3723],{"class":1577},[1079,3799,3800],{"class":1137},"kwargs",[1079,3802,1152],{"class":1116},[1079,3804,3805,3808,3811],{"class":1081,"line":1855},[1079,3806,3807],{"class":1158},"        \"\"\"",[1079,3809,3810],{"class":1162},"Store task result with additional metadata.",[1079,3812,1166],{"class":1158},[1079,3814,3815,3818,3821,3823,3826],{"class":1081,"line":1876},[1079,3816,3817],{"class":1092},"        return",[1079,3819,3820],{"class":3733}," super",[1079,3822,3737],{"class":1116},[1079,3824,3825],{"class":1190},"store_result",[1079,3827,3495],{"class":1116},[1079,3829,3830,3833,3835],{"class":1081,"line":1881},[1079,3831,3832],{"class":1190},"            task_id",[1079,3834,1141],{"class":1116},[1079,3836,3509],{"class":1190},[1079,3838,3839,3842,3844],{"class":1081,"line":1890},[1079,3840,3841],{"class":1190},"            result",[1079,3843,1141],{"class":1116},[1079,3845,3509],{"class":1190},[1079,3847,3848,3851],{"class":1081,"line":1905},[1079,3849,3850],{"class":1190},"            status",[1079,3852,1757],{"class":1116},[1079,3854,3855,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878],{"class":1081,"line":1924},[1079,3856,3857],{"class":1196},"            priority",[1079,3859,1175],{"class":1116},[1079,3861,3800],{"class":1190},[1079,3863,1181],{"class":1116},[1079,3865,1191],{"class":1190},[1079,3867,1134],{"class":1116},[1079,3869,1232],{"class":1224},[1079,3871,2590],{"class":1228},[1079,3873,1232],{"class":1224},[1079,3875,1141],{"class":1116},[1079,3877,2274],{"class":1546},[1079,3879,3880],{"class":1116},"),\n",[1079,3882,3883,3886,3888,3890,3892,3894,3896,3898,3900,3902,3904,3907],{"class":1081,"line":1963},[1079,3884,3885],{"class":1196},"            category",[1079,3887,1175],{"class":1116},[1079,3889,3800],{"class":1190},[1079,3891,1181],{"class":1116},[1079,3893,1191],{"class":1190},[1079,3895,1134],{"class":1116},[1079,3897,1232],{"class":1224},[1079,3899,3650],{"class":1228},[1079,3901,1232],{"class":1224},[1079,3903,1141],{"class":1116},[1079,3905,3906],{"class":1224}," ''",[1079,3908,3880],{"class":1116},[1079,3910,3911,3914,3916,3918,3920,3922,3924,3926,3928,3930],{"class":1081,"line":2007},[1079,3912,3913],{"class":1196},"            created_by_id",[1079,3915,1175],{"class":1116},[1079,3917,3800],{"class":1190},[1079,3919,1181],{"class":1116},[1079,3921,1191],{"class":1190},[1079,3923,1134],{"class":1116},[1079,3925,1232],{"class":1224},[1079,3927,1138],{"class":1228},[1079,3929,1232],{"class":1224},[1079,3931,1204],{"class":1116},[1079,3933,3934],{"class":1081,"line":2421},[1079,3935,3936],{"class":1116},"        )\n",[1079,3938,3939],{"class":1081,"line":2434},[1079,3940,1110],{"emptyLinePlaceholder":1109},[1079,3942,3943],{"class":1081,"line":2453},[1079,3944,3945],{"class":1085},"# settings.py - Use custom backend\n",[1079,3947,3948,3950,3952],{"class":1081,"line":2459},[1079,3949,2042],{"class":2041},[1079,3951,2045],{"class":1116},[1079,3953,2048],{"class":1116},[1079,3955,3956,3958,3960,3962,3964],{"class":1081,"line":2473},[1079,3957,2053],{"class":1224},[1079,3959,2056],{"class":1228},[1079,3961,1232],{"class":1224},[1079,3963,1747],{"class":1116},[1079,3965,2048],{"class":1116},[1079,3967,3968,3970,3972,3974,3976,3978,3981,3983],{"class":1081,"line":2492},[1079,3969,1739],{"class":1224},[1079,3971,2069],{"class":1228},[1079,3973,1232],{"class":1224},[1079,3975,1747],{"class":1116},[1079,3977,1225],{"class":1224},[1079,3979,3980],{"class":1228},"myapp.backends.CustomDatabaseBackend",[1079,3982,1232],{"class":1224},[1079,3984,1757],{"class":1116},[1079,3986,3987,3989,3991,3993,3995],{"class":1081,"line":2505},[1079,3988,1739],{"class":1224},[1079,3990,2089],{"class":1228},[1079,3992,1232],{"class":1224},[1079,3994,1747],{"class":1116},[1079,3996,2048],{"class":1116},[1079,3998,3999,4001,4003,4005,4007,4009,4011,4013],{"class":1081,"line":2518},[1079,4000,2100],{"class":1224},[1079,4002,2103],{"class":1228},[1079,4004,1232],{"class":1224},[1079,4006,1747],{"class":1116},[1079,4008,1225],{"class":1224},[1079,4010,2056],{"class":1228},[1079,4012,1232],{"class":1224},[1079,4014,1757],{"class":1116},[1079,4016,4017],{"class":1081,"line":2538},[1079,4018,2140],{"class":1116},[1079,4020,4021],{"class":1081,"line":2553},[1079,4022,2145],{"class":1116},[1079,4024,4025],{"class":1081,"line":2569},[1079,4026,2150],{"class":1116},[1035,4028,4030],{"id":4029},"redis-backend-configuration","Redis Backend Configuration",[1069,4032,4034],{"className":1071,"code":4033,"language":1073,"meta":1074,"style":1074},"# Redis backend with advanced configuration\nimport redis\nfrom django.conf import settings\n\n# Redis connection pool\nREDIS_POOL = redis.ConnectionPool(\n    host=settings.REDIS_HOST,\n    port=settings.REDIS_PORT,\n    db=settings.REDIS_DB,\n    max_connections=20,\n    retry_on_timeout=True,\n    socket_keepalive=True,\n    socket_keepalive_options={},\n)\n\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.redis.RedisBackend',\n        'OPTIONS': {\n            'connection_pool': REDIS_POOL,\n            'key_prefix': 'tasks:',\n            'result_expires': 3600,\n            'compression': 'gzip',  # None, gzip, lz4\n        }\n    }\n}\n\n# Redis Sentinel configuration for high availability\nREDIS_SENTINELS = [\n    ('sentinel1.example.com', 26379),\n    ('sentinel2.example.com', 26379),\n    ('sentinel3.example.com', 26379),\n]\n\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.redis.RedisSentinelBackend',\n        'OPTIONS': {\n            'sentinels': REDIS_SENTINELS,\n            'service_name': 'mymaster',\n            'key_prefix': 'tasks:',\n        }\n    }\n}\n\n# Redis Cluster configuration\nREDIS_CLUSTER_NODES = [\n    {'host': 'redis-node1.example.com', 'port': 7000},\n    {'host': 'redis-node2.example.com', 'port': 7000},\n    {'host': 'redis-node3.example.com', 'port': 7000},\n]\n\nTASKS = {\n    'default': {\n        'BACKEND': 'django.tasks.backends.redis.RedisClusterBackend',\n        'OPTIONS': {\n            'startup_nodes': REDIS_CLUSTER_NODES,\n            'key_prefix': 'tasks:',\n        }\n    }\n}\n",[1076,4035,4036,4041,4048,4064,4068,4073,4090,4107,4123,4139,4151,4162,4173,4181,4185,4189,4197,4209,4227,4239,4255,4274,4289,4312,4316,4320,4324,4328,4333,4342,4361,4378,4395,4400,4404,4412,4424,4443,4455,4471,4491,4509,4513,4517,4521,4525,4530,4539,4574,4607,4640,4644,4648,4656,4668,4687,4699,4715,4733,4737,4741],{"__ignoreMap":1074},[1079,4037,4038],{"class":1081,"line":1082},[1079,4039,4040],{"class":1085},"# Redis backend with advanced configuration\n",[1079,4042,4043,4045],{"class":1081,"line":1089},[1079,4044,1100],{"class":1092},[1079,4046,4047],{"class":1096}," redis\n",[1079,4049,4050,4052,4054,4056,4059,4061],{"class":1081,"line":1106},[1079,4051,1093],{"class":1092},[1079,4053,1267],{"class":1096},[1079,4055,1181],{"class":1116},[1079,4057,4058],{"class":1096},"conf ",[1079,4060,1100],{"class":1092},[1079,4062,4063],{"class":1096}," settings\n",[1079,4065,4066],{"class":1081,"line":1113},[1079,4067,1110],{"emptyLinePlaceholder":1109},[1079,4069,4070],{"class":1081,"line":1124},[1079,4071,4072],{"class":1085},"# Redis connection pool\n",[1079,4074,4075,4078,4080,4083,4085,4088],{"class":1081,"line":1155},[1079,4076,4077],{"class":2041},"REDIS_POOL",[1079,4079,2045],{"class":1116},[1079,4081,4082],{"class":1096}," redis",[1079,4084,1181],{"class":1116},[1079,4086,4087],{"class":1190},"ConnectionPool",[1079,4089,3495],{"class":1116},[1079,4091,4092,4095,4097,4100,4102,4105],{"class":1081,"line":1169},[1079,4093,4094],{"class":1196},"    host",[1079,4096,1175],{"class":1116},[1079,4098,4099],{"class":1190},"settings",[1079,4101,1181],{"class":1116},[1079,4103,4104],{"class":3524},"REDIS_HOST",[1079,4106,1757],{"class":1116},[1079,4108,4109,4112,4114,4116,4118,4121],{"class":1081,"line":1207},[1079,4110,4111],{"class":1196},"    port",[1079,4113,1175],{"class":1116},[1079,4115,4099],{"class":1190},[1079,4117,1181],{"class":1116},[1079,4119,4120],{"class":3524},"REDIS_PORT",[1079,4122,1757],{"class":1116},[1079,4124,4125,4128,4130,4132,4134,4137],{"class":1081,"line":1251},[1079,4126,4127],{"class":1196},"    db",[1079,4129,1175],{"class":1116},[1079,4131,4099],{"class":1190},[1079,4133,1181],{"class":1116},[1079,4135,4136],{"class":3524},"REDIS_DB",[1079,4138,1757],{"class":1116},[1079,4140,4141,4144,4146,4149],{"class":1081,"line":1256},[1079,4142,4143],{"class":1196},"    max_connections",[1079,4145,1175],{"class":1116},[1079,4147,4148],{"class":1546},"20",[1079,4150,1757],{"class":1116},[1079,4152,4153,4156,4158,4160],{"class":1081,"line":1262},[1079,4154,4155],{"class":1196},"    retry_on_timeout",[1079,4157,1175],{"class":1116},[1079,4159,3476],{"class":1957},[1079,4161,1757],{"class":1116},[1079,4163,4164,4167,4169,4171],{"class":1081,"line":1280},[1079,4165,4166],{"class":1196},"    socket_keepalive",[1079,4168,1175],{"class":1116},[1079,4170,3476],{"class":1957},[1079,4172,1757],{"class":1116},[1079,4174,4175,4178],{"class":1081,"line":1285},[1079,4176,4177],{"class":1196},"    socket_keepalive_options",[1079,4179,4180],{"class":1116},"={},\n",[1079,4182,4183],{"class":1081,"line":1293},[1079,4184,1204],{"class":1116},[1079,4186,4187],{"class":1081,"line":1315},[1079,4188,1110],{"emptyLinePlaceholder":1109},[1079,4190,4191,4193,4195],{"class":1081,"line":1325},[1079,4192,2042],{"class":2041},[1079,4194,2045],{"class":1116},[1079,4196,2048],{"class":1116},[1079,4198,4199,4201,4203,4205,4207],{"class":1081,"line":1352},[1079,4200,2053],{"class":1224},[1079,4202,2056],{"class":1228},[1079,4204,1232],{"class":1224},[1079,4206,1747],{"class":1116},[1079,4208,2048],{"class":1116},[1079,4210,4211,4213,4215,4217,4219,4221,4223,4225],{"class":1081,"line":1652},[1079,4212,1739],{"class":1224},[1079,4214,2069],{"class":1228},[1079,4216,1232],{"class":1224},[1079,4218,1747],{"class":1116},[1079,4220,1225],{"class":1224},[1079,4222,2194],{"class":1228},[1079,4224,1232],{"class":1224},[1079,4226,1757],{"class":1116},[1079,4228,4229,4231,4233,4235,4237],{"class":1081,"line":1657},[1079,4230,1739],{"class":1224},[1079,4232,2089],{"class":1228},[1079,4234,1232],{"class":1224},[1079,4236,1747],{"class":1116},[1079,4238,2048],{"class":1116},[1079,4240,4241,4243,4246,4248,4250,4253],{"class":1081,"line":1672},[1079,4242,2100],{"class":1224},[1079,4244,4245],{"class":1228},"connection_pool",[1079,4247,1232],{"class":1224},[1079,4249,1747],{"class":1116},[1079,4251,4252],{"class":2041}," REDIS_POOL",[1079,4254,1757],{"class":1116},[1079,4256,4257,4259,4261,4263,4265,4267,4270,4272],{"class":1081,"line":1682},[1079,4258,2100],{"class":1224},[1079,4260,2288],{"class":1228},[1079,4262,1232],{"class":1224},[1079,4264,1747],{"class":1116},[1079,4266,1225],{"class":1224},[1079,4268,4269],{"class":1228},"tasks:",[1079,4271,1232],{"class":1224},[1079,4273,1757],{"class":1116},[1079,4275,4276,4278,4281,4283,4285,4287],{"class":1081,"line":1688},[1079,4277,2100],{"class":1224},[1079,4279,4280],{"class":1228},"result_expires",[1079,4282,1232],{"class":1224},[1079,4284,1747],{"class":1116},[1079,4286,3000],{"class":1546},[1079,4288,1757],{"class":1116},[1079,4290,4291,4293,4296,4298,4300,4302,4305,4307,4309],{"class":1081,"line":1720},[1079,4292,2100],{"class":1224},[1079,4294,4295],{"class":1228},"compression",[1079,4297,1232],{"class":1224},[1079,4299,1747],{"class":1116},[1079,4301,1225],{"class":1224},[1079,4303,4304],{"class":1228},"gzip",[1079,4306,1232],{"class":1224},[1079,4308,1141],{"class":1116},[1079,4310,4311],{"class":1085},"  # None, gzip, lz4\n",[1079,4313,4314],{"class":1081,"line":1725},[1079,4315,2140],{"class":1116},[1079,4317,4318],{"class":1081,"line":1736},[1079,4319,2145],{"class":1116},[1079,4321,4322],{"class":1081,"line":1760},[1079,4323,2150],{"class":1116},[1079,4325,4326],{"class":1081,"line":1781},[1079,4327,1110],{"emptyLinePlaceholder":1109},[1079,4329,4330],{"class":1081,"line":1801},[1079,4331,4332],{"class":1085},"# Redis Sentinel configuration for high availability\n",[1079,4334,4335,4338,4340],{"class":1081,"line":1807},[1079,4336,4337],{"class":2041},"REDIS_SENTINELS",[1079,4339,2045],{"class":1116},[1079,4341,3596],{"class":1116},[1079,4343,4344,4347,4349,4352,4354,4356,4359],{"class":1081,"line":1812},[1079,4345,4346],{"class":1116},"    (",[1079,4348,1232],{"class":1224},[1079,4350,4351],{"class":1228},"sentinel1.example.com",[1079,4353,1232],{"class":1224},[1079,4355,1141],{"class":1116},[1079,4357,4358],{"class":1546}," 26379",[1079,4360,3880],{"class":1116},[1079,4362,4363,4365,4367,4370,4372,4374,4376],{"class":1081,"line":1831},[1079,4364,4346],{"class":1116},[1079,4366,1232],{"class":1224},[1079,4368,4369],{"class":1228},"sentinel2.example.com",[1079,4371,1232],{"class":1224},[1079,4373,1141],{"class":1116},[1079,4375,4358],{"class":1546},[1079,4377,3880],{"class":1116},[1079,4379,4380,4382,4384,4387,4389,4391,4393],{"class":1081,"line":1841},[1079,4381,4346],{"class":1116},[1079,4383,1232],{"class":1224},[1079,4385,4386],{"class":1228},"sentinel3.example.com",[1079,4388,1232],{"class":1224},[1079,4390,1141],{"class":1116},[1079,4392,4358],{"class":1546},[1079,4394,3880],{"class":1116},[1079,4396,4397],{"class":1081,"line":1855},[1079,4398,4399],{"class":1116},"]\n",[1079,4401,4402],{"class":1081,"line":1876},[1079,4403,1110],{"emptyLinePlaceholder":1109},[1079,4405,4406,4408,4410],{"class":1081,"line":1881},[1079,4407,2042],{"class":2041},[1079,4409,2045],{"class":1116},[1079,4411,2048],{"class":1116},[1079,4413,4414,4416,4418,4420,4422],{"class":1081,"line":1890},[1079,4415,2053],{"class":1224},[1079,4417,2056],{"class":1228},[1079,4419,1232],{"class":1224},[1079,4421,1747],{"class":1116},[1079,4423,2048],{"class":1116},[1079,4425,4426,4428,4430,4432,4434,4436,4439,4441],{"class":1081,"line":1905},[1079,4427,1739],{"class":1224},[1079,4429,2069],{"class":1228},[1079,4431,1232],{"class":1224},[1079,4433,1747],{"class":1116},[1079,4435,1225],{"class":1224},[1079,4437,4438],{"class":1228},"django.tasks.backends.redis.RedisSentinelBackend",[1079,4440,1232],{"class":1224},[1079,4442,1757],{"class":1116},[1079,4444,4445,4447,4449,4451,4453],{"class":1081,"line":1924},[1079,4446,1739],{"class":1224},[1079,4448,2089],{"class":1228},[1079,4450,1232],{"class":1224},[1079,4452,1747],{"class":1116},[1079,4454,2048],{"class":1116},[1079,4456,4457,4459,4462,4464,4466,4469],{"class":1081,"line":1963},[1079,4458,2100],{"class":1224},[1079,4460,4461],{"class":1228},"sentinels",[1079,4463,1232],{"class":1224},[1079,4465,1747],{"class":1116},[1079,4467,4468],{"class":2041}," REDIS_SENTINELS",[1079,4470,1757],{"class":1116},[1079,4472,4473,4475,4478,4480,4482,4484,4487,4489],{"class":1081,"line":2007},[1079,4474,2100],{"class":1224},[1079,4476,4477],{"class":1228},"service_name",[1079,4479,1232],{"class":1224},[1079,4481,1747],{"class":1116},[1079,4483,1225],{"class":1224},[1079,4485,4486],{"class":1228},"mymaster",[1079,4488,1232],{"class":1224},[1079,4490,1757],{"class":1116},[1079,4492,4493,4495,4497,4499,4501,4503,4505,4507],{"class":1081,"line":2421},[1079,4494,2100],{"class":1224},[1079,4496,2288],{"class":1228},[1079,4498,1232],{"class":1224},[1079,4500,1747],{"class":1116},[1079,4502,1225],{"class":1224},[1079,4504,4269],{"class":1228},[1079,4506,1232],{"class":1224},[1079,4508,1757],{"class":1116},[1079,4510,4511],{"class":1081,"line":2434},[1079,4512,2140],{"class":1116},[1079,4514,4515],{"class":1081,"line":2453},[1079,4516,2145],{"class":1116},[1079,4518,4519],{"class":1081,"line":2459},[1079,4520,2150],{"class":1116},[1079,4522,4523],{"class":1081,"line":2473},[1079,4524,1110],{"emptyLinePlaceholder":1109},[1079,4526,4527],{"class":1081,"line":2492},[1079,4528,4529],{"class":1085},"# Redis Cluster configuration\n",[1079,4531,4532,4535,4537],{"class":1081,"line":2505},[1079,4533,4534],{"class":2041},"REDIS_CLUSTER_NODES",[1079,4536,2045],{"class":1116},[1079,4538,3596],{"class":1116},[1079,4540,4541,4544,4546,4548,4550,4552,4554,4557,4559,4561,4563,4565,4567,4569,4572],{"class":1081,"line":2518},[1079,4542,4543],{"class":1116},"    {",[1079,4545,1232],{"class":1224},[1079,4547,2231],{"class":1228},[1079,4549,1232],{"class":1224},[1079,4551,1747],{"class":1116},[1079,4553,1225],{"class":1224},[1079,4555,4556],{"class":1228},"redis-node1.example.com",[1079,4558,1232],{"class":1224},[1079,4560,1141],{"class":1116},[1079,4562,1225],{"class":1224},[1079,4564,2251],{"class":1228},[1079,4566,1232],{"class":1224},[1079,4568,1747],{"class":1116},[1079,4570,4571],{"class":1546}," 7000",[1079,4573,2717],{"class":1116},[1079,4575,4576,4578,4580,4582,4584,4586,4588,4591,4593,4595,4597,4599,4601,4603,4605],{"class":1081,"line":2538},[1079,4577,4543],{"class":1116},[1079,4579,1232],{"class":1224},[1079,4581,2231],{"class":1228},[1079,4583,1232],{"class":1224},[1079,4585,1747],{"class":1116},[1079,4587,1225],{"class":1224},[1079,4589,4590],{"class":1228},"redis-node2.example.com",[1079,4592,1232],{"class":1224},[1079,4594,1141],{"class":1116},[1079,4596,1225],{"class":1224},[1079,4598,2251],{"class":1228},[1079,4600,1232],{"class":1224},[1079,4602,1747],{"class":1116},[1079,4604,4571],{"class":1546},[1079,4606,2717],{"class":1116},[1079,4608,4609,4611,4613,4615,4617,4619,4621,4624,4626,4628,4630,4632,4634,4636,4638],{"class":1081,"line":2553},[1079,4610,4543],{"class":1116},[1079,4612,1232],{"class":1224},[1079,4614,2231],{"class":1228},[1079,4616,1232],{"class":1224},[1079,4618,1747],{"class":1116},[1079,4620,1225],{"class":1224},[1079,4622,4623],{"class":1228},"redis-node3.example.com",[1079,4625,1232],{"class":1224},[1079,4627,1141],{"class":1116},[1079,4629,1225],{"class":1224},[1079,4631,2251],{"class":1228},[1079,4633,1232],{"class":1224},[1079,4635,1747],{"class":1116},[1079,4637,4571],{"class":1546},[1079,4639,2717],{"class":1116},[1079,4641,4642],{"class":1081,"line":2569},[1079,4643,4399],{"class":1116},[1079,4645,4646],{"class":1081,"line":2575},[1079,4647,1110],{"emptyLinePlaceholder":1109},[1079,4649,4650,4652,4654],{"class":1081,"line":2580},[1079,4651,2042],{"class":2041},[1079,4653,2045],{"class":1116},[1079,4655,2048],{"class":1116},[1079,4657,4658,4660,4662,4664,4666],{"class":1081,"line":2585},[1079,4659,2053],{"class":1224},[1079,4661,2056],{"class":1228},[1079,4663,1232],{"class":1224},[1079,4665,1747],{"class":1116},[1079,4667,2048],{"class":1116},[1079,4669,4670,4672,4674,4676,4678,4680,4683,4685],{"class":1081,"line":2599},[1079,4671,1739],{"class":1224},[1079,4673,2069],{"class":1228},[1079,4675,1232],{"class":1224},[1079,4677,1747],{"class":1116},[1079,4679,1225],{"class":1224},[1079,4681,4682],{"class":1228},"django.tasks.backends.redis.RedisClusterBackend",[1079,4684,1232],{"class":1224},[1079,4686,1757],{"class":1116},[1079,4688,4689,4691,4693,4695,4697],{"class":1081,"line":2618},[1079,4690,1739],{"class":1224},[1079,4692,2089],{"class":1228},[1079,4694,1232],{"class":1224},[1079,4696,1747],{"class":1116},[1079,4698,2048],{"class":1116},[1079,4700,4701,4703,4706,4708,4710,4713],{"class":1081,"line":2631},[1079,4702,2100],{"class":1224},[1079,4704,4705],{"class":1228},"startup_nodes",[1079,4707,1232],{"class":1224},[1079,4709,1747],{"class":1116},[1079,4711,4712],{"class":2041}," REDIS_CLUSTER_NODES",[1079,4714,1757],{"class":1116},[1079,4716,4717,4719,4721,4723,4725,4727,4729,4731],{"class":1081,"line":2651},[1079,4718,2100],{"class":1224},[1079,4720,2288],{"class":1228},[1079,4722,1232],{"class":1224},[1079,4724,1747],{"class":1116},[1079,4726,1225],{"class":1224},[1079,4728,4269],{"class":1228},[1079,4730,1232],{"class":1224},[1079,4732,1757],{"class":1116},[1079,4734,4735],{"class":1081,"line":2656},[1079,4736,2140],{"class":1116},[1079,4738,4739],{"class":1081,"line":2661},[1079,4740,2145],{"class":1116},[1079,4742,4743],{"class":1081,"line":2666},[1079,4744,2150],{"class":1116},[1030,4746,4748],{"id":4747},"defining-tasks","Defining Tasks",[1035,4750,4752],{"id":4751},"basic-task-definition","Basic Task Definition",[1069,4754,4756],{"className":1071,"code":4755,"language":1073,"meta":1074,"style":1074},"# tasks.py - Basic task definitions\nfrom django.tasks import task\nfrom django.core.mail import send_mail\nfrom django.contrib.auth.models import User\nfrom .models import Post, UserProfile\nimport requests\nimport time\n\n@task\ndef simple_task(message):\n    \"\"\"Simple task example.\"\"\"\n    print(f\"Processing: {message}\")\n    time.sleep(2)\n    return f\"Completed: {message}\"\n\n@task\ndef send_welcome_email(user_id):\n    \"\"\"Send welcome email to user.\"\"\"\n    try:\n        user = User.objects.get(id=user_id)\n        \n        subject = \"Welcome to our platform!\"\n        message = f\"Hello {user.first_name or user.username}, welcome to our platform!\"\n        \n        send_mail(\n            subject=subject,\n            message=message,\n            from_email='noreply@example.com',\n            recipient_list=[user.email],\n            fail_silently=False\n        )\n        \n        return f\"Welcome email sent to {user.email}\"\n    \n    except User.DoesNotExist:\n        return f\"User with ID {user_id} not found\"\n    except Exception as e:\n        raise Exception(f\"Failed to send email: {str(e)}\")\n\n@task\ndef process_user_data(user_id, data_updates):\n    \"\"\"Process user data updates.\"\"\"\n    try:\n        user = User.objects.get(id=user_id)\n        \n        # Update user fields\n        for field, value in data_updates.items():\n            if hasattr(user, field):\n                setattr(user, field, value)\n        \n        user.save()\n        \n        # Update or create profile\n        profile, created = UserProfile.objects.get_or_create(user=user)\n        profile_updates = data_updates.get('profile', {})\n        \n        for field, value in profile_updates.items():\n            if hasattr(profile, field):\n                setattr(profile, field, value)\n        \n        profile.save()\n        \n        return {\n            'user_updated': True,\n            'profile_created': created,\n            'updated_fields': list(data_updates.keys())\n        }\n    \n    except Exception as e:\n        raise Exception(f\"Failed to process user data: {str(e)}\")\n\n@task\ndef fetch_external_data(api_url, params=None):\n    \"\"\"Fetch data from external API.\"\"\"\n    try:\n        response = requests.get(api_url, params=params, timeout=30)\n        response.raise_for_status()\n        \n        data = response.json()\n        \n        # Process and store data\n        processed_count = 0\n        for item in data.get('items', []):\n            # Process each item\n            processed_count += 1\n        \n        return {\n            'success': True,\n            'items_processed': processed_count,\n            'total_items': len(data.get('items', []))\n        }\n    \n    except requests.RequestException as e:\n        raise Exception(f\"API request failed: {str(e)}\")\n    except Exception as e:\n        raise Exception(f\"Data processing failed: {str(e)}\")\n",[1076,4757,4758,4763,4777,4798,4823,4842,4849,4855,4859,4865,4878,4887,4908,4924,4942,4946,4952,4965,4974,4981,5008,5013,5027,5064,5068,5075,5086,5097,5113,5128,5138,5142,5146,5167,5171,5185,5203,5218,5250,5254,5260,5278,5287,5293,5319,5323,5328,5353,5370,5390,5394,5406,5410,5415,5449,5476,5480,5501,5517,5535,5539,5549,5553,5559,5574,5590,5617,5621,5625,5637,5666,5670,5676,5700,5709,5715,5754,5766,5770,5786,5790,5795,5805,5834,5839,5850,5854,5860,5875,5891,5927,5931,5935,5952,5981,5993],{"__ignoreMap":1074},[1079,4759,4760],{"class":1081,"line":1082},[1079,4761,4762],{"class":1085},"# tasks.py - Basic task definitions\n",[1079,4764,4765,4767,4769,4771,4773,4775],{"class":1081,"line":1089},[1079,4766,1093],{"class":1092},[1079,4768,1267],{"class":1096},[1079,4770,1181],{"class":1116},[1079,4772,1272],{"class":1096},[1079,4774,1100],{"class":1092},[1079,4776,1277],{"class":1096},[1079,4778,4779,4781,4783,4785,4788,4790,4793,4795],{"class":1081,"line":1106},[1079,4780,1093],{"class":1092},[1079,4782,1267],{"class":1096},[1079,4784,1181],{"class":1116},[1079,4786,4787],{"class":1096},"core",[1079,4789,1181],{"class":1116},[1079,4791,4792],{"class":1096},"mail ",[1079,4794,1100],{"class":1092},[1079,4796,4797],{"class":1096}," send_mail\n",[1079,4799,4800,4802,4804,4806,4809,4811,4814,4816,4818,4820],{"class":1081,"line":1113},[1079,4801,1093],{"class":1092},[1079,4803,1267],{"class":1096},[1079,4805,1181],{"class":1116},[1079,4807,4808],{"class":1096},"contrib",[1079,4810,1181],{"class":1116},[1079,4812,4813],{"class":1096},"auth",[1079,4815,1181],{"class":1116},[1079,4817,3378],{"class":1096},[1079,4819,1100],{"class":1092},[1079,4821,4822],{"class":1096}," User\n",[1079,4824,4825,4827,4830,4832,4834,4837,4839],{"class":1081,"line":1124},[1079,4826,1093],{"class":1092},[1079,4828,4829],{"class":1116}," .",[1079,4831,3378],{"class":1096},[1079,4833,1100],{"class":1092},[1079,4835,4836],{"class":1096}," Post",[1079,4838,1141],{"class":1116},[1079,4840,4841],{"class":1096}," UserProfile\n",[1079,4843,4844,4846],{"class":1081,"line":1155},[1079,4845,1100],{"class":1092},[1079,4847,4848],{"class":1096}," requests\n",[1079,4850,4851,4853],{"class":1081,"line":1169},[1079,4852,1100],{"class":1092},[1079,4854,1439],{"class":1096},[1079,4856,4857],{"class":1081,"line":1207},[1079,4858,1110],{"emptyLinePlaceholder":1109},[1079,4860,4861,4863],{"class":1081,"line":1251},[1079,4862,1117],{"class":1116},[1079,4864,1290],{"class":1120},[1079,4866,4867,4869,4872,4874,4876],{"class":1081,"line":1256},[1079,4868,1128],{"class":1127},[1079,4870,4871],{"class":1120}," simple_task",[1079,4873,1134],{"class":1116},[1079,4875,1786],{"class":1137},[1079,4877,1152],{"class":1116},[1079,4879,4880,4882,4885],{"class":1081,"line":1262},[1079,4881,1159],{"class":1158},[1079,4883,4884],{"class":1162},"Simple task example.",[1079,4886,1166],{"class":1158},[1079,4888,4889,4891,4893,4895,4898,4900,4902,4904,4906],{"class":1081,"line":1280},[1079,4890,1483],{"class":1482},[1079,4892,1134],{"class":1116},[1079,4894,1488],{"class":1127},[1079,4896,4897],{"class":1228},"\"Processing: ",[1079,4899,1495],{"class":1494},[1079,4901,1786],{"class":1190},[1079,4903,1501],{"class":1494},[1079,4905,1594],{"class":1228},[1079,4907,1204],{"class":1116},[1079,4909,4910,4913,4915,4917,4919,4922],{"class":1081,"line":1285},[1079,4911,4912],{"class":1096},"    time",[1079,4914,1181],{"class":1116},[1079,4916,1541],{"class":1190},[1079,4918,1134],{"class":1116},[1079,4920,4921],{"class":1546},"2",[1079,4923,1204],{"class":1116},[1079,4925,4926,4928,4930,4933,4935,4937,4939],{"class":1081,"line":1293},[1079,4927,1646],{"class":1092},[1079,4929,1610],{"class":1127},[1079,4931,4932],{"class":1228},"\"Completed: ",[1079,4934,1495],{"class":1494},[1079,4936,1786],{"class":1096},[1079,4938,1501],{"class":1494},[1079,4940,4941],{"class":1228},"\"\n",[1079,4943,4944],{"class":1081,"line":1315},[1079,4945,1110],{"emptyLinePlaceholder":1109},[1079,4947,4948,4950],{"class":1081,"line":1325},[1079,4949,1117],{"class":1116},[1079,4951,1290],{"class":1120},[1079,4953,4954,4956,4959,4961,4963],{"class":1081,"line":1352},[1079,4955,1128],{"class":1127},[1079,4957,4958],{"class":1120}," send_welcome_email",[1079,4960,1134],{"class":1116},[1079,4962,1138],{"class":1137},[1079,4964,1152],{"class":1116},[1079,4966,4967,4969,4972],{"class":1081,"line":1652},[1079,4968,1159],{"class":1158},[1079,4970,4971],{"class":1162},"Send welcome email to user.",[1079,4973,1166],{"class":1158},[1079,4975,4976,4979],{"class":1081,"line":1657},[1079,4977,4978],{"class":1092},"    try",[1079,4980,3572],{"class":1116},[1079,4982,4983,4986,4988,4990,4992,4994,4996,4998,5000,5002,5004,5006],{"class":1081,"line":1672},[1079,4984,4985],{"class":1096},"        user ",[1079,4987,1175],{"class":1116},[1079,4989,1178],{"class":1096},[1079,4991,1181],{"class":1116},[1079,4993,1185],{"class":1184},[1079,4995,1181],{"class":1116},[1079,4997,1191],{"class":1190},[1079,4999,1134],{"class":1116},[1079,5001,1197],{"class":1196},[1079,5003,1175],{"class":1116},[1079,5005,1138],{"class":1190},[1079,5007,1204],{"class":1116},[1079,5009,5010],{"class":1081,"line":1682},[1079,5011,5012],{"class":1096},"        \n",[1079,5014,5015,5018,5020,5022,5025],{"class":1081,"line":1688},[1079,5016,5017],{"class":1096},"        subject ",[1079,5019,1175],{"class":1116},[1079,5021,1710],{"class":1224},[1079,5023,5024],{"class":1228},"Welcome to our platform!",[1079,5026,4941],{"class":1224},[1079,5028,5029,5032,5034,5036,5039,5041,5043,5045,5048,5051,5054,5056,5059,5061],{"class":1081,"line":1720},[1079,5030,5031],{"class":1096},"        message ",[1079,5033,1175],{"class":1116},[1079,5035,1610],{"class":1127},[1079,5037,5038],{"class":1228},"\"Hello ",[1079,5040,1495],{"class":1494},[1079,5042,1240],{"class":1096},[1079,5044,1181],{"class":1116},[1079,5046,5047],{"class":1184},"first_name",[1079,5049,5050],{"class":1577}," or",[1079,5052,5053],{"class":1096}," user",[1079,5055,1181],{"class":1116},[1079,5057,5058],{"class":1184},"username",[1079,5060,1501],{"class":1494},[1079,5062,5063],{"class":1228},", welcome to our platform!\"\n",[1079,5065,5066],{"class":1081,"line":1725},[1079,5067,5012],{"class":1096},[1079,5069,5070,5073],{"class":1081,"line":1736},[1079,5071,5072],{"class":1190},"        send_mail",[1079,5074,3495],{"class":1116},[1079,5076,5077,5080,5082,5084],{"class":1081,"line":1760},[1079,5078,5079],{"class":1196},"            subject",[1079,5081,1175],{"class":1116},[1079,5083,1215],{"class":1190},[1079,5085,1757],{"class":1116},[1079,5087,5088,5091,5093,5095],{"class":1081,"line":1781},[1079,5089,5090],{"class":1196},"            message",[1079,5092,1175],{"class":1116},[1079,5094,1786],{"class":1190},[1079,5096,1757],{"class":1116},[1079,5098,5099,5102,5104,5106,5109,5111],{"class":1081,"line":1801},[1079,5100,5101],{"class":1196},"            from_email",[1079,5103,1175],{"class":1116},[1079,5105,1232],{"class":1224},[1079,5107,5108],{"class":1228},"noreply@example.com",[1079,5110,1232],{"class":1224},[1079,5112,1757],{"class":1116},[1079,5114,5115,5118,5120,5122,5124,5126],{"class":1081,"line":1807},[1079,5116,5117],{"class":1196},"            recipient_list",[1079,5119,3614],{"class":1116},[1079,5121,1240],{"class":1190},[1079,5123,1181],{"class":1116},[1079,5125,1245],{"class":1184},[1079,5127,3271],{"class":1116},[1079,5129,5130,5133,5135],{"class":1081,"line":1812},[1079,5131,5132],{"class":1196},"            fail_silently",[1079,5134,1175],{"class":1116},[1079,5136,5137],{"class":1957},"False\n",[1079,5139,5140],{"class":1081,"line":1831},[1079,5141,3936],{"class":1116},[1079,5143,5144],{"class":1081,"line":1841},[1079,5145,5012],{"class":1096},[1079,5147,5148,5150,5152,5155,5157,5159,5161,5163,5165],{"class":1081,"line":1855},[1079,5149,3817],{"class":1092},[1079,5151,1610],{"class":1127},[1079,5153,5154],{"class":1228},"\"Welcome email sent to ",[1079,5156,1495],{"class":1494},[1079,5158,1240],{"class":1096},[1079,5160,1181],{"class":1116},[1079,5162,1245],{"class":1184},[1079,5164,1501],{"class":1494},[1079,5166,4941],{"class":1228},[1079,5168,5169],{"class":1081,"line":1876},[1079,5170,1511],{"class":1096},[1079,5172,5173,5176,5178,5180,5183],{"class":1081,"line":1881},[1079,5174,5175],{"class":1092},"    except",[1079,5177,1178],{"class":1096},[1079,5179,1181],{"class":1116},[1079,5181,5182],{"class":1184},"DoesNotExist",[1079,5184,3572],{"class":1116},[1079,5186,5187,5189,5191,5194,5196,5198,5200],{"class":1081,"line":1890},[1079,5188,3817],{"class":1092},[1079,5190,1610],{"class":1127},[1079,5192,5193],{"class":1228},"\"User with ID ",[1079,5195,1495],{"class":1494},[1079,5197,1138],{"class":1096},[1079,5199,1501],{"class":1494},[1079,5201,5202],{"class":1228}," not found\"\n",[1079,5204,5205,5207,5210,5213,5216],{"class":1081,"line":1905},[1079,5206,5175],{"class":1092},[1079,5208,5209],{"class":3733}," Exception",[1079,5211,5212],{"class":1092}," as",[1079,5214,5215],{"class":1096}," e",[1079,5217,3572],{"class":1116},[1079,5219,5220,5223,5225,5227,5229,5232,5234,5237,5239,5242,5244,5246,5248],{"class":1081,"line":1924},[1079,5221,5222],{"class":1092},"        raise",[1079,5224,5209],{"class":3733},[1079,5226,1134],{"class":1116},[1079,5228,1488],{"class":1127},[1079,5230,5231],{"class":1228},"\"Failed to send email: ",[1079,5233,1495],{"class":1494},[1079,5235,5236],{"class":3733},"str",[1079,5238,1134],{"class":1116},[1079,5240,5241],{"class":1190},"e",[1079,5243,1999],{"class":1116},[1079,5245,1501],{"class":1494},[1079,5247,1594],{"class":1228},[1079,5249,1204],{"class":1116},[1079,5251,5252],{"class":1081,"line":1963},[1079,5253,1110],{"emptyLinePlaceholder":1109},[1079,5255,5256,5258],{"class":1081,"line":2007},[1079,5257,1117],{"class":1116},[1079,5259,1290],{"class":1120},[1079,5261,5262,5264,5267,5269,5271,5273,5276],{"class":1081,"line":2421},[1079,5263,1128],{"class":1127},[1079,5265,5266],{"class":1120}," process_user_data",[1079,5268,1134],{"class":1116},[1079,5270,1138],{"class":1137},[1079,5272,1141],{"class":1116},[1079,5274,5275],{"class":1137}," data_updates",[1079,5277,1152],{"class":1116},[1079,5279,5280,5282,5285],{"class":1081,"line":2434},[1079,5281,1159],{"class":1158},[1079,5283,5284],{"class":1162},"Process user data updates.",[1079,5286,1166],{"class":1158},[1079,5288,5289,5291],{"class":1081,"line":2453},[1079,5290,4978],{"class":1092},[1079,5292,3572],{"class":1116},[1079,5294,5295,5297,5299,5301,5303,5305,5307,5309,5311,5313,5315,5317],{"class":1081,"line":2459},[1079,5296,4985],{"class":1096},[1079,5298,1175],{"class":1116},[1079,5300,1178],{"class":1096},[1079,5302,1181],{"class":1116},[1079,5304,1185],{"class":1184},[1079,5306,1181],{"class":1116},[1079,5308,1191],{"class":1190},[1079,5310,1134],{"class":1116},[1079,5312,1197],{"class":1196},[1079,5314,1175],{"class":1116},[1079,5316,1138],{"class":1190},[1079,5318,1204],{"class":1116},[1079,5320,5321],{"class":1081,"line":2473},[1079,5322,5012],{"class":1096},[1079,5324,5325],{"class":1081,"line":2492},[1079,5326,5327],{"class":1085},"        # Update user fields\n",[1079,5329,5330,5333,5336,5338,5341,5343,5345,5347,5350],{"class":1081,"line":2505},[1079,5331,5332],{"class":1092},"        for",[1079,5334,5335],{"class":1096}," field",[1079,5337,1141],{"class":1116},[1079,5339,5340],{"class":1096}," value ",[1079,5342,1522],{"class":1092},[1079,5344,5275],{"class":1096},[1079,5346,1181],{"class":1116},[1079,5348,5349],{"class":1190},"items",[1079,5351,5352],{"class":1116},"():\n",[1079,5354,5355,5358,5360,5362,5364,5366,5368],{"class":1081,"line":2518},[1079,5356,5357],{"class":1092},"            if",[1079,5359,1983],{"class":1482},[1079,5361,1134],{"class":1116},[1079,5363,1240],{"class":1190},[1079,5365,1141],{"class":1116},[1079,5367,5335],{"class":1190},[1079,5369,1152],{"class":1116},[1079,5371,5372,5375,5377,5379,5381,5383,5385,5388],{"class":1081,"line":2538},[1079,5373,5374],{"class":1482},"                setattr",[1079,5376,1134],{"class":1116},[1079,5378,1240],{"class":1190},[1079,5380,1141],{"class":1116},[1079,5382,5335],{"class":1190},[1079,5384,1141],{"class":1116},[1079,5386,5387],{"class":1190}," value",[1079,5389,1204],{"class":1116},[1079,5391,5392],{"class":1081,"line":2553},[1079,5393,5012],{"class":1096},[1079,5395,5396,5399,5401,5404],{"class":1081,"line":2569},[1079,5397,5398],{"class":1096},"        user",[1079,5400,1181],{"class":1116},[1079,5402,5403],{"class":1190},"save",[1079,5405,1852],{"class":1116},[1079,5407,5408],{"class":1081,"line":2575},[1079,5409,5012],{"class":1096},[1079,5411,5412],{"class":1081,"line":2580},[1079,5413,5414],{"class":1085},"        # Update or create profile\n",[1079,5416,5417,5420,5422,5425,5427,5430,5432,5434,5436,5439,5441,5443,5445,5447],{"class":1081,"line":2585},[1079,5418,5419],{"class":1096},"        profile",[1079,5421,1141],{"class":1116},[1079,5423,5424],{"class":1096}," created ",[1079,5426,1175],{"class":1116},[1079,5428,5429],{"class":1096}," UserProfile",[1079,5431,1181],{"class":1116},[1079,5433,1185],{"class":1184},[1079,5435,1181],{"class":1116},[1079,5437,5438],{"class":1190},"get_or_create",[1079,5440,1134],{"class":1116},[1079,5442,1240],{"class":1196},[1079,5444,1175],{"class":1116},[1079,5446,1240],{"class":1190},[1079,5448,1204],{"class":1116},[1079,5450,5451,5454,5456,5458,5460,5462,5464,5466,5469,5471,5473],{"class":1081,"line":2599},[1079,5452,5453],{"class":1096},"        profile_updates ",[1079,5455,1175],{"class":1116},[1079,5457,5275],{"class":1096},[1079,5459,1181],{"class":1116},[1079,5461,1191],{"class":1190},[1079,5463,1134],{"class":1116},[1079,5465,1232],{"class":1224},[1079,5467,5468],{"class":1228},"profile",[1079,5470,1232],{"class":1224},[1079,5472,1141],{"class":1116},[1079,5474,5475],{"class":1116}," {})\n",[1079,5477,5478],{"class":1081,"line":2618},[1079,5479,5012],{"class":1096},[1079,5481,5482,5484,5486,5488,5490,5492,5495,5497,5499],{"class":1081,"line":2631},[1079,5483,5332],{"class":1092},[1079,5485,5335],{"class":1096},[1079,5487,1141],{"class":1116},[1079,5489,5340],{"class":1096},[1079,5491,1522],{"class":1092},[1079,5493,5494],{"class":1096}," profile_updates",[1079,5496,1181],{"class":1116},[1079,5498,5349],{"class":1190},[1079,5500,5352],{"class":1116},[1079,5502,5503,5505,5507,5509,5511,5513,5515],{"class":1081,"line":2651},[1079,5504,5357],{"class":1092},[1079,5506,1983],{"class":1482},[1079,5508,1134],{"class":1116},[1079,5510,5468],{"class":1190},[1079,5512,1141],{"class":1116},[1079,5514,5335],{"class":1190},[1079,5516,1152],{"class":1116},[1079,5518,5519,5521,5523,5525,5527,5529,5531,5533],{"class":1081,"line":2656},[1079,5520,5374],{"class":1482},[1079,5522,1134],{"class":1116},[1079,5524,5468],{"class":1190},[1079,5526,1141],{"class":1116},[1079,5528,5335],{"class":1190},[1079,5530,1141],{"class":1116},[1079,5532,5387],{"class":1190},[1079,5534,1204],{"class":1116},[1079,5536,5537],{"class":1081,"line":2661},[1079,5538,5012],{"class":1096},[1079,5540,5541,5543,5545,5547],{"class":1081,"line":2666},[1079,5542,5419],{"class":1096},[1079,5544,1181],{"class":1116},[1079,5546,5403],{"class":1190},[1079,5548,1852],{"class":1116},[1079,5550,5551],{"class":1081,"line":2671},[1079,5552,5012],{"class":1096},[1079,5554,5555,5557],{"class":1081,"line":2677},[1079,5556,3817],{"class":1092},[1079,5558,2048],{"class":1116},[1079,5560,5561,5563,5566,5568,5570,5572],{"class":1081,"line":2687},[1079,5562,2100],{"class":1224},[1079,5564,5565],{"class":1228},"user_updated",[1079,5567,1232],{"class":1224},[1079,5569,1747],{"class":1116},[1079,5571,3305],{"class":1957},[1079,5573,1757],{"class":1116},[1079,5575,5576,5578,5581,5583,5585,5588],{"class":1081,"line":2720},[1079,5577,2100],{"class":1224},[1079,5579,5580],{"class":1228},"profile_created",[1079,5582,1232],{"class":1224},[1079,5584,1747],{"class":1116},[1079,5586,5587],{"class":1096}," created",[1079,5589,1757],{"class":1116},[1079,5591,5592,5594,5597,5599,5601,5604,5606,5609,5611,5614],{"class":1081,"line":2750},[1079,5593,2100],{"class":1224},[1079,5595,5596],{"class":1228},"updated_fields",[1079,5598,1232],{"class":1224},[1079,5600,1747],{"class":1116},[1079,5602,5603],{"class":3733}," list",[1079,5605,1134],{"class":1116},[1079,5607,5608],{"class":1190},"data_updates",[1079,5610,1181],{"class":1116},[1079,5612,5613],{"class":1190},"keys",[1079,5615,5616],{"class":1116},"())\n",[1079,5618,5619],{"class":1081,"line":2780},[1079,5620,2140],{"class":1116},[1079,5622,5623],{"class":1081,"line":2785},[1079,5624,1511],{"class":1096},[1079,5626,5627,5629,5631,5633,5635],{"class":1081,"line":2790},[1079,5628,5175],{"class":1092},[1079,5630,5209],{"class":3733},[1079,5632,5212],{"class":1092},[1079,5634,5215],{"class":1096},[1079,5636,3572],{"class":1116},[1079,5638,5639,5641,5643,5645,5647,5650,5652,5654,5656,5658,5660,5662,5664],{"class":1081,"line":2796},[1079,5640,5222],{"class":1092},[1079,5642,5209],{"class":3733},[1079,5644,1134],{"class":1116},[1079,5646,1488],{"class":1127},[1079,5648,5649],{"class":1228},"\"Failed to process user data: ",[1079,5651,1495],{"class":1494},[1079,5653,5236],{"class":3733},[1079,5655,1134],{"class":1116},[1079,5657,5241],{"class":1190},[1079,5659,1999],{"class":1116},[1079,5661,1501],{"class":1494},[1079,5663,1594],{"class":1228},[1079,5665,1204],{"class":1116},[1079,5667,5668],{"class":1081,"line":2806},[1079,5669,1110],{"emptyLinePlaceholder":1109},[1079,5671,5672,5674],{"class":1081,"line":2819},[1079,5673,1117],{"class":1116},[1079,5675,1290],{"class":1120},[1079,5677,5678,5680,5683,5685,5688,5690,5693,5695,5698],{"class":1081,"line":2836},[1079,5679,1128],{"class":1127},[1079,5681,5682],{"class":1120}," fetch_external_data",[1079,5684,1134],{"class":1116},[1079,5686,5687],{"class":1137},"api_url",[1079,5689,1141],{"class":1116},[1079,5691,5692],{"class":1137}," params",[1079,5694,1175],{"class":1577},[1079,5696,5697],{"class":1957},"None",[1079,5699,1152],{"class":1116},[1079,5701,5702,5704,5707],{"class":1081,"line":2853},[1079,5703,1159],{"class":1158},[1079,5705,5706],{"class":1162},"Fetch data from external API.",[1079,5708,1166],{"class":1158},[1079,5710,5711,5713],{"class":1081,"line":2873},[1079,5712,4978],{"class":1092},[1079,5714,3572],{"class":1116},[1079,5716,5717,5720,5722,5725,5727,5729,5731,5733,5735,5737,5739,5742,5744,5747,5749,5752],{"class":1081,"line":2878},[1079,5718,5719],{"class":1096},"        response ",[1079,5721,1175],{"class":1116},[1079,5723,5724],{"class":1096}," requests",[1079,5726,1181],{"class":1116},[1079,5728,1191],{"class":1190},[1079,5730,1134],{"class":1116},[1079,5732,5687],{"class":1190},[1079,5734,1141],{"class":1116},[1079,5736,5692],{"class":1196},[1079,5738,1175],{"class":1116},[1079,5740,5741],{"class":1190},"params",[1079,5743,1141],{"class":1116},[1079,5745,5746],{"class":1196}," timeout",[1079,5748,1175],{"class":1116},[1079,5750,5751],{"class":1546},"30",[1079,5753,1204],{"class":1116},[1079,5755,5756,5759,5761,5764],{"class":1081,"line":2891},[1079,5757,5758],{"class":1096},"        response",[1079,5760,1181],{"class":1116},[1079,5762,5763],{"class":1190},"raise_for_status",[1079,5765,1852],{"class":1116},[1079,5767,5768],{"class":1081,"line":2907},[1079,5769,5012],{"class":1096},[1079,5771,5772,5775,5777,5780,5782,5784],{"class":1081,"line":2923},[1079,5773,5774],{"class":1096},"        data ",[1079,5776,1175],{"class":1116},[1079,5778,5779],{"class":1096}," response",[1079,5781,1181],{"class":1116},[1079,5783,2973],{"class":1190},[1079,5785,1852],{"class":1116},[1079,5787,5788],{"class":1081,"line":2942},[1079,5789,5012],{"class":1096},[1079,5791,5792],{"class":1081,"line":2947},[1079,5793,5794],{"class":1085},"        # Process and store data\n",[1079,5796,5797,5800,5802],{"class":1081,"line":2952},[1079,5798,5799],{"class":1096},"        processed_count ",[1079,5801,1175],{"class":1116},[1079,5803,5804],{"class":1546}," 0\n",[1079,5806,5807,5809,5812,5814,5817,5819,5821,5823,5825,5827,5829,5831],{"class":1081,"line":2957},[1079,5808,5332],{"class":1092},[1079,5810,5811],{"class":1096}," item ",[1079,5813,1522],{"class":1092},[1079,5815,5816],{"class":1096}," data",[1079,5818,1181],{"class":1116},[1079,5820,1191],{"class":1190},[1079,5822,1134],{"class":1116},[1079,5824,1232],{"class":1224},[1079,5826,5349],{"class":1228},[1079,5828,1232],{"class":1224},[1079,5830,1141],{"class":1116},[1079,5832,5833],{"class":1116}," []):\n",[1079,5835,5836],{"class":1081,"line":2963},[1079,5837,5838],{"class":1085},"            # Process each item\n",[1079,5840,5841,5844,5847],{"class":1081,"line":2981},[1079,5842,5843],{"class":1096},"            processed_count ",[1079,5845,5846],{"class":1116},"+=",[1079,5848,5849],{"class":1546}," 1\n",[1079,5851,5852],{"class":1081,"line":2986},[1079,5853,5012],{"class":1096},[1079,5855,5856,5858],{"class":1081,"line":2992},[1079,5857,3817],{"class":1092},[1079,5859,2048],{"class":1116},[1079,5861,5862,5864,5867,5869,5871,5873],{"class":1081,"line":3006},[1079,5863,2100],{"class":1224},[1079,5865,5866],{"class":1228},"success",[1079,5868,1232],{"class":1224},[1079,5870,1747],{"class":1116},[1079,5872,3305],{"class":1957},[1079,5874,1757],{"class":1116},[1079,5876,5877,5879,5882,5884,5886,5889],{"class":1081,"line":3011},[1079,5878,2100],{"class":1224},[1079,5880,5881],{"class":1228},"items_processed",[1079,5883,1232],{"class":1224},[1079,5885,1747],{"class":1116},[1079,5887,5888],{"class":1096}," processed_count",[1079,5890,1757],{"class":1116},[1079,5892,5893,5895,5898,5900,5902,5905,5907,5910,5912,5914,5916,5918,5920,5922,5924],{"class":1081,"line":3017},[1079,5894,2100],{"class":1224},[1079,5896,5897],{"class":1228},"total_items",[1079,5899,1232],{"class":1224},[1079,5901,1747],{"class":1116},[1079,5903,5904],{"class":1482}," len",[1079,5906,1134],{"class":1116},[1079,5908,5909],{"class":1190},"data",[1079,5911,1181],{"class":1116},[1079,5913,1191],{"class":1190},[1079,5915,1134],{"class":1116},[1079,5917,1232],{"class":1224},[1079,5919,5349],{"class":1228},[1079,5921,1232],{"class":1224},[1079,5923,1141],{"class":1116},[1079,5925,5926],{"class":1116}," []))\n",[1079,5928,5929],{"class":1081,"line":3031},[1079,5930,2140],{"class":1116},[1079,5932,5933],{"class":1081,"line":3042},[1079,5934,1511],{"class":1096},[1079,5936,5937,5939,5941,5943,5946,5948,5950],{"class":1081,"line":3047},[1079,5938,5175],{"class":1092},[1079,5940,5724],{"class":1096},[1079,5942,1181],{"class":1116},[1079,5944,5945],{"class":1184},"RequestException",[1079,5947,5212],{"class":1092},[1079,5949,5215],{"class":1096},[1079,5951,3572],{"class":1116},[1079,5953,5954,5956,5958,5960,5962,5965,5967,5969,5971,5973,5975,5977,5979],{"class":1081,"line":3053},[1079,5955,5222],{"class":1092},[1079,5957,5209],{"class":3733},[1079,5959,1134],{"class":1116},[1079,5961,1488],{"class":1127},[1079,5963,5964],{"class":1228},"\"API request failed: ",[1079,5966,1495],{"class":1494},[1079,5968,5236],{"class":3733},[1079,5970,1134],{"class":1116},[1079,5972,5241],{"class":1190},[1079,5974,1999],{"class":1116},[1079,5976,1501],{"class":1494},[1079,5978,1594],{"class":1228},[1079,5980,1204],{"class":1116},[1079,5982,5983,5985,5987,5989,5991],{"class":1081,"line":3064},[1079,5984,5175],{"class":1092},[1079,5986,5209],{"class":3733},[1079,5988,5212],{"class":1092},[1079,5990,5215],{"class":1096},[1079,5992,3572],{"class":1116},[1079,5994,5995,5997,5999,6001,6003,6006,6008,6010,6012,6014,6016,6018,6020],{"class":1081,"line":3074},[1079,5996,5222],{"class":1092},[1079,5998,5209],{"class":3733},[1079,6000,1134],{"class":1116},[1079,6002,1488],{"class":1127},[1079,6004,6005],{"class":1228},"\"Data processing failed: ",[1079,6007,1495],{"class":1494},[1079,6009,5236],{"class":3733},[1079,6011,1134],{"class":1116},[1079,6013,5241],{"class":1190},[1079,6015,1999],{"class":1116},[1079,6017,1501],{"class":1494},[1079,6019,1594],{"class":1228},[1079,6021,1204],{"class":1116},[1035,6023,6025],{"id":6024},"advanced-task-patterns","Advanced Task Patterns",[1069,6027,6029],{"className":1071,"code":6028,"language":1073,"meta":1074,"style":1074},"# Advanced task definitions with options\nfrom django.tasks import task\nfrom django.tasks.exceptions import Retry, Ignore\nfrom datetime import datetime, timedelta\nimport logging\n\nlogger = logging.getLogger(__name__)\n\n@task(\n    bind=True,\n    max_retries=3,\n    default_retry_delay=60,\n    rate_limit='10/m',  # 10 tasks per minute\n    time_limit=300,     # 5 minutes\n    soft_time_limit=240 # 4 minutes\n)\ndef robust_email_task(self, user_id, template_name, context=None):\n    \"\"\"Robust email sending task with retry logic.\"\"\"\n    try:\n        user = User.objects.get(id=user_id)\n        \n        # Render email template\n        from django.template.loader import render_to_string\n        \n        html_content = render_to_string(\n            f'emails/{template_name}.html',\n            context or {}\n        )\n        \n        # Send email\n        from django.core.mail import EmailMessage\n        \n        email = EmailMessage(\n            subject=context.get('subject', 'Notification'),\n            body=html_content,\n            from_email='noreply@example.com',\n            to=[user.email]\n        )\n        email.content_subtype = 'html'\n        email.send()\n        \n        logger.info(f\"Email sent successfully to {user.email}\")\n        return f\"Email sent to {user.email}\"\n    \n    except User.DoesNotExist:\n        logger.error(f\"User {user_id} not found\")\n        raise Ignore(f\"User {user_id} not found\")\n    \n    except Exception as exc:\n        logger.error(f\"Email sending failed: {exc}\")\n        \n        # Retry with exponential backoff\n        retry_delay = 60 * (2 ** self.request.retries)\n        \n        raise self.retry(\n            exc=exc,\n            countdown=retry_delay,\n            max_retries=3\n        )\n\n@task(bind=True, queue='high_priority')\ndef urgent_notification_task(self, user_ids, message, notification_type='urgent'):\n    \"\"\"Send urgent notifications to multiple users.\"\"\"\n    successful_sends = 0\n    failed_sends = 0\n    \n    for user_id in user_ids:\n        try:\n            user = User.objects.get(id=user_id)\n            \n            # Send notification via multiple channels\n            channels_sent = []\n            \n            # Email notification\n            if user.email:\n                send_mail(\n                    subject=f'Urgent: {notification_type}',\n                    message=message,\n                    from_email='urgent@example.com',\n                    recipient_list=[user.email]\n                )\n                channels_sent.append('email')\n            \n            # SMS notification (if configured)\n            if hasattr(user, 'profile') and user.profile.phone_number:\n                # send_sms(user.profile.phone_number, message)\n                channels_sent.append('sms')\n            \n            # Push notification\n            # send_push_notification(user, message)\n            channels_sent.append('push')\n            \n            successful_sends += 1\n            logger.info(f\"Urgent notification sent to user {user_id} via {channels_sent}\")\n        \n        except User.DoesNotExist:\n            failed_sends += 1\n            logger.warning(f\"User {user_id} not found for urgent notification\")\n        \n        except Exception as e:\n            failed_sends += 1\n            logger.error(f\"Failed to send urgent notification to user {user_id}: {e}\")\n    \n    return {\n        'successful_sends': successful_sends,\n        'failed_sends': failed_sends,\n        'total_users': len(user_ids)\n    }\n\n@task(bind=True)\ndef batch_process_posts(self, post_ids, operation, **kwargs):\n    \"\"\"Batch process multiple posts.\"\"\"\n    results = {\n        'successful': [],\n        'failed': [],\n        'total': len(post_ids)\n    }\n    \n    for i, post_id in enumerate(post_ids):\n        try:\n            # Update task progress\n            self.update_state(\n                state='PROGRESS',\n                meta={\n                    'current': i + 1,\n                    'total': len(post_ids),\n                    'status': f'Processing post {post_id}'\n                }\n            )\n            \n            post = Post.objects.get(id=post_id)\n            \n            if operation == 'publish':\n                post.published = True\n                post.published_at = datetime.now()\n            elif operation == 'unpublish':\n                post.published = False\n            elif operation == 'feature':\n                post.featured = True\n            elif operation == 'update_category':\n                category_id = kwargs.get('category_id')\n                if category_id:\n                    post.category_id = category_id\n            \n            post.save()\n            results['successful'].append(post_id)\n        \n        except Post.DoesNotExist:\n            results['failed'].append({\n                'post_id': post_id,\n                'error': 'Post not found'\n            })\n        \n        except Exception as e:\n            results['failed'].append({\n                'post_id': post_id,\n                'error': str(e)\n            })\n    \n    return results\n\n@task(bind=True, time_limit=3600)  # 1 hour limit\ndef generate_report(self, report_type, date_range, user_id):\n    \"\"\"Generate comprehensive report.\"\"\"\n    try:\n        user = User.objects.get(id=user_id)\n        \n        # Update progress\n        self.update_state(\n            state='PROGRESS',\n            meta={'status': 'Initializing report generation'}\n        )\n        \n        from .reports import ReportGenerator\n        generator = ReportGenerator(report_type, date_range)\n        \n        # Generate report sections\n        sections = ['summary', 'details', 'charts', 'export']\n        \n        for i, section in enumerate(sections):\n            self.update_state(\n                state='PROGRESS',\n                meta={\n                    'current': i + 1,\n                    'total': len(sections),\n                    'status': f'Generating {section} section'\n                }\n            )\n            \n            generator.generate_section(section)\n        \n        # Finalize report\n        report_path = generator.finalize()\n        \n        # Send report to user\n        send_mail(\n            subject=f'Report Ready: {report_type}',\n            message=f'Your {report_type} report is ready for download.',\n            from_email='reports@example.com',\n            recipient_list=[user.email]\n        )\n        \n        return {\n            'report_path': report_path,\n            'report_type': report_type,\n            'generated_for': user.email,\n            'sections_generated': len(sections)\n        }\n    \n    except Exception as e:\n        logger.error(f\"Report generation failed: {e}\")\n        raise\n",[1076,6030,6031,6036,6050,6075,6092,6099,6103,6126,6130,6139,6150,6162,6174,6193,6208,6221,6225,6257,6266,6272,6298,6302,6307,6329,6333,6345,6365,6376,6380,6384,6389,6408,6412,6424,6456,6468,6482,6497,6501,6520,6531,6535,6566,6587,6591,6603,6630,6653,6657,6670,6696,6700,6705,6738,6742,6755,6766,6778,6788,6792,6796,6827,6863,6872,6881,6890,6894,6907,6914,6941,6946,6951,6961,6965,6970,6982,6989,7012,7023,7039,7054,7059,7079,7083,7088,7124,7129,7148,7152,7157,7162,7182,7186,7195,7231,7235,7248,7257,7283,7287,7299,7307,7341,7345,7351,7367,7383,7403,7407,7411,7427,7456,7465,7474,7488,7502,7523,7528,7533,7557,7564,7570,7583,7600,7609,7630,7649,7674,7680,7686,7691,7719,7724,7744,7759,7780,7799,7813,7831,7845,7863,7889,7900,7915,7920,7932,7958,7963,7976,7995,8011,8029,8035,8040,8053,8072,8087,8107,8112,8117,8125,8130,8160,8188,8198,8205,8232,8237,8243,8254,8270,8296,8301,8306,8321,8343,8348,8354,8400,8405,8428,8439,8454,8461,8480,8499,8525,8530,8535,8540,8557,8562,8568,8586,8591,8597,8604,8626,8649,8665,8680,8685,8690,8697,8714,8729,8749,8769,8774,8779,8792,8818],{"__ignoreMap":1074},[1079,6032,6033],{"class":1081,"line":1082},[1079,6034,6035],{"class":1085},"# Advanced task definitions with options\n",[1079,6037,6038,6040,6042,6044,6046,6048],{"class":1081,"line":1089},[1079,6039,1093],{"class":1092},[1079,6041,1267],{"class":1096},[1079,6043,1181],{"class":1116},[1079,6045,1272],{"class":1096},[1079,6047,1100],{"class":1092},[1079,6049,1277],{"class":1096},[1079,6051,6052,6054,6056,6058,6060,6062,6065,6067,6070,6072],{"class":1081,"line":1106},[1079,6053,1093],{"class":1092},[1079,6055,1267],{"class":1096},[1079,6057,1181],{"class":1116},[1079,6059,3363],{"class":1096},[1079,6061,1181],{"class":1116},[1079,6063,6064],{"class":1096},"exceptions ",[1079,6066,1100],{"class":1092},[1079,6068,6069],{"class":1096}," Retry",[1079,6071,1141],{"class":1116},[1079,6073,6074],{"class":1096}," Ignore\n",[1079,6076,6077,6079,6082,6084,6087,6089],{"class":1081,"line":1113},[1079,6078,1093],{"class":1092},[1079,6080,6081],{"class":1096}," datetime ",[1079,6083,1100],{"class":1092},[1079,6085,6086],{"class":1096}," datetime",[1079,6088,1141],{"class":1116},[1079,6090,6091],{"class":1096}," timedelta\n",[1079,6093,6094,6096],{"class":1081,"line":1124},[1079,6095,1100],{"class":1092},[1079,6097,6098],{"class":1096}," logging\n",[1079,6100,6101],{"class":1081,"line":1155},[1079,6102,1110],{"emptyLinePlaceholder":1109},[1079,6104,6105,6108,6110,6113,6115,6118,6120,6124],{"class":1081,"line":1169},[1079,6106,6107],{"class":1096},"logger ",[1079,6109,1175],{"class":1116},[1079,6111,6112],{"class":1096}," logging",[1079,6114,1181],{"class":1116},[1079,6116,6117],{"class":1190},"getLogger",[1079,6119,1134],{"class":1116},[1079,6121,6123],{"class":6122},"s131V","__name__",[1079,6125,1204],{"class":1116},[1079,6127,6128],{"class":1081,"line":1207},[1079,6129,1110],{"emptyLinePlaceholder":1109},[1079,6131,6132,6134,6137],{"class":1081,"line":1251},[1079,6133,1117],{"class":1116},[1079,6135,6136],{"class":1120},"task",[1079,6138,3495],{"class":1116},[1079,6140,6141,6144,6146,6148],{"class":1081,"line":1256},[1079,6142,6143],{"class":1196},"    bind",[1079,6145,1175],{"class":1116},[1079,6147,3476],{"class":1957},[1079,6149,1757],{"class":1116},[1079,6151,6152,6155,6157,6160],{"class":1081,"line":1262},[1079,6153,6154],{"class":1196},"    max_retries",[1079,6156,1175],{"class":1116},[1079,6158,6159],{"class":1546},"3",[1079,6161,1757],{"class":1116},[1079,6163,6164,6167,6169,6172],{"class":1081,"line":1280},[1079,6165,6166],{"class":1196},"    default_retry_delay",[1079,6168,1175],{"class":1116},[1079,6170,6171],{"class":1546},"60",[1079,6173,1757],{"class":1116},[1079,6175,6176,6179,6181,6183,6186,6188,6190],{"class":1081,"line":1285},[1079,6177,6178],{"class":1196},"    rate_limit",[1079,6180,1175],{"class":1116},[1079,6182,1232],{"class":1224},[1079,6184,6185],{"class":1228},"10/m",[1079,6187,1232],{"class":1224},[1079,6189,1141],{"class":1116},[1079,6191,6192],{"class":1085},"  # 10 tasks per minute\n",[1079,6194,6195,6198,6200,6203,6205],{"class":1081,"line":1293},[1079,6196,6197],{"class":1196},"    time_limit",[1079,6199,1175],{"class":1116},[1079,6201,6202],{"class":1546},"300",[1079,6204,1141],{"class":1116},[1079,6206,6207],{"class":1085},"     # 5 minutes\n",[1079,6209,6210,6213,6215,6218],{"class":1081,"line":1315},[1079,6211,6212],{"class":1196},"    soft_time_limit",[1079,6214,1175],{"class":1116},[1079,6216,6217],{"class":1546},"240",[1079,6219,6220],{"class":1085}," # 4 minutes\n",[1079,6222,6223],{"class":1081,"line":1325},[1079,6224,1204],{"class":1116},[1079,6226,6227,6229,6232,6234,6236,6238,6241,6243,6246,6248,6251,6253,6255],{"class":1081,"line":1352},[1079,6228,1128],{"class":1127},[1079,6230,6231],{"class":1120}," robust_email_task",[1079,6233,1134],{"class":1116},[1079,6235,3718],{"class":3717},[1079,6237,1141],{"class":1116},[1079,6239,6240],{"class":1137}," user_id",[1079,6242,1141],{"class":1116},[1079,6244,6245],{"class":1137}," template_name",[1079,6247,1141],{"class":1116},[1079,6249,6250],{"class":1137}," context",[1079,6252,1175],{"class":1577},[1079,6254,5697],{"class":1957},[1079,6256,1152],{"class":1116},[1079,6258,6259,6261,6264],{"class":1081,"line":1652},[1079,6260,1159],{"class":1158},[1079,6262,6263],{"class":1162},"Robust email sending task with retry logic.",[1079,6265,1166],{"class":1158},[1079,6267,6268,6270],{"class":1081,"line":1657},[1079,6269,4978],{"class":1092},[1079,6271,3572],{"class":1116},[1079,6273,6274,6276,6278,6280,6282,6284,6286,6288,6290,6292,6294,6296],{"class":1081,"line":1672},[1079,6275,4985],{"class":1096},[1079,6277,1175],{"class":1116},[1079,6279,1178],{"class":1096},[1079,6281,1181],{"class":1116},[1079,6283,1185],{"class":1184},[1079,6285,1181],{"class":1116},[1079,6287,1191],{"class":1190},[1079,6289,1134],{"class":1116},[1079,6291,1197],{"class":1196},[1079,6293,1175],{"class":1116},[1079,6295,1138],{"class":1190},[1079,6297,1204],{"class":1116},[1079,6299,6300],{"class":1081,"line":1682},[1079,6301,5012],{"class":1096},[1079,6303,6304],{"class":1081,"line":1688},[1079,6305,6306],{"class":1085},"        # Render email template\n",[1079,6308,6309,6312,6314,6316,6319,6321,6324,6326],{"class":1081,"line":1720},[1079,6310,6311],{"class":1092},"        from",[1079,6313,1267],{"class":1096},[1079,6315,1181],{"class":1116},[1079,6317,6318],{"class":1096},"template",[1079,6320,1181],{"class":1116},[1079,6322,6323],{"class":1096},"loader ",[1079,6325,1100],{"class":1092},[1079,6327,6328],{"class":1096}," render_to_string\n",[1079,6330,6331],{"class":1081,"line":1725},[1079,6332,5012],{"class":1096},[1079,6334,6335,6338,6340,6343],{"class":1081,"line":1736},[1079,6336,6337],{"class":1096},"        html_content ",[1079,6339,1175],{"class":1116},[1079,6341,6342],{"class":1190}," render_to_string",[1079,6344,3495],{"class":1116},[1079,6346,6347,6350,6353,6355,6358,6360,6363],{"class":1081,"line":1760},[1079,6348,6349],{"class":1127},"            f",[1079,6351,6352],{"class":1228},"'emails/",[1079,6354,1495],{"class":1494},[1079,6356,6357],{"class":1190},"template_name",[1079,6359,1501],{"class":1494},[1079,6361,6362],{"class":1228},".html'",[1079,6364,1757],{"class":1116},[1079,6366,6367,6370,6373],{"class":1081,"line":1781},[1079,6368,6369],{"class":1190},"            context ",[1079,6371,6372],{"class":1092},"or",[1079,6374,6375],{"class":1116}," {}\n",[1079,6377,6378],{"class":1081,"line":1801},[1079,6379,3936],{"class":1116},[1079,6381,6382],{"class":1081,"line":1807},[1079,6383,5012],{"class":1096},[1079,6385,6386],{"class":1081,"line":1812},[1079,6387,6388],{"class":1085},"        # Send email\n",[1079,6390,6391,6393,6395,6397,6399,6401,6403,6405],{"class":1081,"line":1831},[1079,6392,6311],{"class":1092},[1079,6394,1267],{"class":1096},[1079,6396,1181],{"class":1116},[1079,6398,4787],{"class":1096},[1079,6400,1181],{"class":1116},[1079,6402,4792],{"class":1096},[1079,6404,1100],{"class":1092},[1079,6406,6407],{"class":1096}," EmailMessage\n",[1079,6409,6410],{"class":1081,"line":1841},[1079,6411,5012],{"class":1096},[1079,6413,6414,6417,6419,6422],{"class":1081,"line":1855},[1079,6415,6416],{"class":1096},"        email ",[1079,6418,1175],{"class":1116},[1079,6420,6421],{"class":1190}," EmailMessage",[1079,6423,3495],{"class":1116},[1079,6425,6426,6428,6430,6433,6435,6437,6439,6441,6443,6445,6447,6449,6452,6454],{"class":1081,"line":1876},[1079,6427,5079],{"class":1196},[1079,6429,1175],{"class":1116},[1079,6431,6432],{"class":1190},"context",[1079,6434,1181],{"class":1116},[1079,6436,1191],{"class":1190},[1079,6438,1134],{"class":1116},[1079,6440,1232],{"class":1224},[1079,6442,1215],{"class":1228},[1079,6444,1232],{"class":1224},[1079,6446,1141],{"class":1116},[1079,6448,1225],{"class":1224},[1079,6450,6451],{"class":1228},"Notification",[1079,6453,1232],{"class":1224},[1079,6455,3880],{"class":1116},[1079,6457,6458,6461,6463,6466],{"class":1081,"line":1881},[1079,6459,6460],{"class":1196},"            body",[1079,6462,1175],{"class":1116},[1079,6464,6465],{"class":1190},"html_content",[1079,6467,1757],{"class":1116},[1079,6469,6470,6472,6474,6476,6478,6480],{"class":1081,"line":1890},[1079,6471,5101],{"class":1196},[1079,6473,1175],{"class":1116},[1079,6475,1232],{"class":1224},[1079,6477,5108],{"class":1228},[1079,6479,1232],{"class":1224},[1079,6481,1757],{"class":1116},[1079,6483,6484,6487,6489,6491,6493,6495],{"class":1081,"line":1905},[1079,6485,6486],{"class":1196},"            to",[1079,6488,3614],{"class":1116},[1079,6490,1240],{"class":1190},[1079,6492,1181],{"class":1116},[1079,6494,1245],{"class":1184},[1079,6496,4399],{"class":1116},[1079,6498,6499],{"class":1081,"line":1924},[1079,6500,3936],{"class":1116},[1079,6502,6503,6506,6508,6511,6513,6515,6518],{"class":1081,"line":1963},[1079,6504,6505],{"class":1096},"        email",[1079,6507,1181],{"class":1116},[1079,6509,6510],{"class":1184},"content_subtype",[1079,6512,2045],{"class":1116},[1079,6514,1225],{"class":1224},[1079,6516,6517],{"class":1228},"html",[1079,6519,1798],{"class":1224},[1079,6521,6522,6524,6526,6529],{"class":1081,"line":2007},[1079,6523,6505],{"class":1096},[1079,6525,1181],{"class":1116},[1079,6527,6528],{"class":1190},"send",[1079,6530,1852],{"class":1116},[1079,6532,6533],{"class":1081,"line":2421},[1079,6534,5012],{"class":1096},[1079,6536,6537,6540,6542,6545,6547,6549,6552,6554,6556,6558,6560,6562,6564],{"class":1081,"line":2434},[1079,6538,6539],{"class":1096},"        logger",[1079,6541,1181],{"class":1116},[1079,6543,6544],{"class":1190},"info",[1079,6546,1134],{"class":1116},[1079,6548,1488],{"class":1127},[1079,6550,6551],{"class":1228},"\"Email sent successfully to ",[1079,6553,1495],{"class":1494},[1079,6555,1240],{"class":1190},[1079,6557,1181],{"class":1116},[1079,6559,1245],{"class":1184},[1079,6561,1501],{"class":1494},[1079,6563,1594],{"class":1228},[1079,6565,1204],{"class":1116},[1079,6567,6568,6570,6572,6575,6577,6579,6581,6583,6585],{"class":1081,"line":2453},[1079,6569,3817],{"class":1092},[1079,6571,1610],{"class":1127},[1079,6573,6574],{"class":1228},"\"Email sent to ",[1079,6576,1495],{"class":1494},[1079,6578,1240],{"class":1096},[1079,6580,1181],{"class":1116},[1079,6582,1245],{"class":1184},[1079,6584,1501],{"class":1494},[1079,6586,4941],{"class":1228},[1079,6588,6589],{"class":1081,"line":2459},[1079,6590,1511],{"class":1096},[1079,6592,6593,6595,6597,6599,6601],{"class":1081,"line":2473},[1079,6594,5175],{"class":1092},[1079,6596,1178],{"class":1096},[1079,6598,1181],{"class":1116},[1079,6600,5182],{"class":1184},[1079,6602,3572],{"class":1116},[1079,6604,6605,6607,6609,6612,6614,6616,6619,6621,6623,6625,6628],{"class":1081,"line":2492},[1079,6606,6539],{"class":1096},[1079,6608,1181],{"class":1116},[1079,6610,6611],{"class":1190},"error",[1079,6613,1134],{"class":1116},[1079,6615,1488],{"class":1127},[1079,6617,6618],{"class":1228},"\"User ",[1079,6620,1495],{"class":1494},[1079,6622,1138],{"class":1190},[1079,6624,1501],{"class":1494},[1079,6626,6627],{"class":1228}," not found\"",[1079,6629,1204],{"class":1116},[1079,6631,6632,6634,6637,6639,6641,6643,6645,6647,6649,6651],{"class":1081,"line":2505},[1079,6633,5222],{"class":1092},[1079,6635,6636],{"class":1190}," Ignore",[1079,6638,1134],{"class":1116},[1079,6640,1488],{"class":1127},[1079,6642,6618],{"class":1228},[1079,6644,1495],{"class":1494},[1079,6646,1138],{"class":1190},[1079,6648,1501],{"class":1494},[1079,6650,6627],{"class":1228},[1079,6652,1204],{"class":1116},[1079,6654,6655],{"class":1081,"line":2518},[1079,6656,1511],{"class":1096},[1079,6658,6659,6661,6663,6665,6668],{"class":1081,"line":2538},[1079,6660,5175],{"class":1092},[1079,6662,5209],{"class":3733},[1079,6664,5212],{"class":1092},[1079,6666,6667],{"class":1096}," exc",[1079,6669,3572],{"class":1116},[1079,6671,6672,6674,6676,6678,6680,6682,6685,6687,6690,6692,6694],{"class":1081,"line":2553},[1079,6673,6539],{"class":1096},[1079,6675,1181],{"class":1116},[1079,6677,6611],{"class":1190},[1079,6679,1134],{"class":1116},[1079,6681,1488],{"class":1127},[1079,6683,6684],{"class":1228},"\"Email sending failed: ",[1079,6686,1495],{"class":1494},[1079,6688,6689],{"class":1190},"exc",[1079,6691,1501],{"class":1494},[1079,6693,1594],{"class":1228},[1079,6695,1204],{"class":1116},[1079,6697,6698],{"class":1081,"line":2569},[1079,6699,5012],{"class":1096},[1079,6701,6702],{"class":1081,"line":2575},[1079,6703,6704],{"class":1085},"        # Retry with exponential backoff\n",[1079,6706,6707,6710,6712,6714,6717,6720,6722,6724,6727,6729,6731,6733,6736],{"class":1081,"line":2580},[1079,6708,6709],{"class":1096},"        retry_delay ",[1079,6711,1175],{"class":1116},[1079,6713,3025],{"class":1546},[1079,6715,6716],{"class":1577}," *",[1079,6718,6719],{"class":1116}," (",[1079,6721,4921],{"class":1546},[1079,6723,3723],{"class":1577},[1079,6725,6726],{"class":2041}," self",[1079,6728,1181],{"class":1116},[1079,6730,1667],{"class":1184},[1079,6732,1181],{"class":1116},[1079,6734,6735],{"class":1184},"retries",[1079,6737,1204],{"class":1116},[1079,6739,6740],{"class":1081,"line":2585},[1079,6741,5012],{"class":1096},[1079,6743,6744,6746,6748,6750,6753],{"class":1081,"line":2599},[1079,6745,5222],{"class":1092},[1079,6747,6726],{"class":2041},[1079,6749,1181],{"class":1116},[1079,6751,6752],{"class":1190},"retry",[1079,6754,3495],{"class":1116},[1079,6756,6757,6760,6762,6764],{"class":1081,"line":2618},[1079,6758,6759],{"class":1196},"            exc",[1079,6761,1175],{"class":1116},[1079,6763,6689],{"class":1190},[1079,6765,1757],{"class":1116},[1079,6767,6768,6771,6773,6776],{"class":1081,"line":2631},[1079,6769,6770],{"class":1196},"            countdown",[1079,6772,1175],{"class":1116},[1079,6774,6775],{"class":1190},"retry_delay",[1079,6777,1757],{"class":1116},[1079,6779,6780,6783,6785],{"class":1081,"line":2651},[1079,6781,6782],{"class":1196},"            max_retries",[1079,6784,1175],{"class":1116},[1079,6786,6787],{"class":1546},"3\n",[1079,6789,6790],{"class":1081,"line":2656},[1079,6791,3936],{"class":1116},[1079,6793,6794],{"class":1081,"line":2661},[1079,6795,1110],{"emptyLinePlaceholder":1109},[1079,6797,6798,6800,6802,6804,6807,6809,6811,6813,6816,6818,6820,6823,6825],{"class":1081,"line":2666},[1079,6799,1117],{"class":1116},[1079,6801,6136],{"class":1120},[1079,6803,1134],{"class":1116},[1079,6805,6806],{"class":1196},"bind",[1079,6808,1175],{"class":1116},[1079,6810,3476],{"class":1957},[1079,6812,1141],{"class":1116},[1079,6814,6815],{"class":1196}," queue",[1079,6817,1175],{"class":1116},[1079,6819,1232],{"class":1224},[1079,6821,6822],{"class":1228},"high_priority",[1079,6824,1232],{"class":1224},[1079,6826,1204],{"class":1116},[1079,6828,6829,6831,6834,6836,6838,6840,6843,6845,6847,6849,6852,6854,6856,6859,6861],{"class":1081,"line":2671},[1079,6830,1128],{"class":1127},[1079,6832,6833],{"class":1120}," urgent_notification_task",[1079,6835,1134],{"class":1116},[1079,6837,3718],{"class":3717},[1079,6839,1141],{"class":1116},[1079,6841,6842],{"class":1137}," user_ids",[1079,6844,1141],{"class":1116},[1079,6846,1149],{"class":1137},[1079,6848,1141],{"class":1116},[1079,6850,6851],{"class":1137}," notification_type",[1079,6853,1175],{"class":1577},[1079,6855,1232],{"class":1224},[1079,6857,6858],{"class":1228},"urgent",[1079,6860,1232],{"class":1224},[1079,6862,1152],{"class":1116},[1079,6864,6865,6867,6870],{"class":1081,"line":2677},[1079,6866,1159],{"class":1158},[1079,6868,6869],{"class":1162},"Send urgent notifications to multiple users.",[1079,6871,1166],{"class":1158},[1079,6873,6874,6877,6879],{"class":1081,"line":2687},[1079,6875,6876],{"class":1096},"    successful_sends ",[1079,6878,1175],{"class":1116},[1079,6880,5804],{"class":1546},[1079,6882,6883,6886,6888],{"class":1081,"line":2720},[1079,6884,6885],{"class":1096},"    failed_sends ",[1079,6887,1175],{"class":1116},[1079,6889,5804],{"class":1546},[1079,6891,6892],{"class":1081,"line":2750},[1079,6893,1511],{"class":1096},[1079,6895,6896,6898,6901,6903,6905],{"class":1081,"line":2780},[1079,6897,1516],{"class":1092},[1079,6899,6900],{"class":1096}," user_id ",[1079,6902,1522],{"class":1092},[1079,6904,6842],{"class":1096},[1079,6906,3572],{"class":1116},[1079,6908,6909,6912],{"class":1081,"line":2785},[1079,6910,6911],{"class":1092},"        try",[1079,6913,3572],{"class":1116},[1079,6915,6916,6919,6921,6923,6925,6927,6929,6931,6933,6935,6937,6939],{"class":1081,"line":2790},[1079,6917,6918],{"class":1096},"            user ",[1079,6920,1175],{"class":1116},[1079,6922,1178],{"class":1096},[1079,6924,1181],{"class":1116},[1079,6926,1185],{"class":1184},[1079,6928,1181],{"class":1116},[1079,6930,1191],{"class":1190},[1079,6932,1134],{"class":1116},[1079,6934,1197],{"class":1196},[1079,6936,1175],{"class":1116},[1079,6938,1138],{"class":1190},[1079,6940,1204],{"class":1116},[1079,6942,6943],{"class":1081,"line":2796},[1079,6944,6945],{"class":1096},"            \n",[1079,6947,6948],{"class":1081,"line":2806},[1079,6949,6950],{"class":1085},"            # Send notification via multiple channels\n",[1079,6952,6953,6956,6958],{"class":1081,"line":2819},[1079,6954,6955],{"class":1096},"            channels_sent ",[1079,6957,1175],{"class":1116},[1079,6959,6960],{"class":1116}," []\n",[1079,6962,6963],{"class":1081,"line":2836},[1079,6964,6945],{"class":1096},[1079,6966,6967],{"class":1081,"line":2853},[1079,6968,6969],{"class":1085},"            # Email notification\n",[1079,6971,6972,6974,6976,6978,6980],{"class":1081,"line":2873},[1079,6973,5357],{"class":1092},[1079,6975,5053],{"class":1096},[1079,6977,1181],{"class":1116},[1079,6979,1245],{"class":1184},[1079,6981,3572],{"class":1116},[1079,6983,6984,6987],{"class":1081,"line":2878},[1079,6985,6986],{"class":1190},"                send_mail",[1079,6988,3495],{"class":1116},[1079,6990,6991,6994,6996,6998,7001,7003,7006,7008,7010],{"class":1081,"line":2891},[1079,6992,6993],{"class":1196},"                    subject",[1079,6995,1175],{"class":1116},[1079,6997,1488],{"class":1127},[1079,6999,7000],{"class":1228},"'Urgent: ",[1079,7002,1495],{"class":1494},[1079,7004,7005],{"class":1190},"notification_type",[1079,7007,1501],{"class":1494},[1079,7009,1232],{"class":1228},[1079,7011,1757],{"class":1116},[1079,7013,7014,7017,7019,7021],{"class":1081,"line":2907},[1079,7015,7016],{"class":1196},"                    message",[1079,7018,1175],{"class":1116},[1079,7020,1786],{"class":1190},[1079,7022,1757],{"class":1116},[1079,7024,7025,7028,7030,7032,7035,7037],{"class":1081,"line":2923},[1079,7026,7027],{"class":1196},"                    from_email",[1079,7029,1175],{"class":1116},[1079,7031,1232],{"class":1224},[1079,7033,7034],{"class":1228},"urgent@example.com",[1079,7036,1232],{"class":1224},[1079,7038,1757],{"class":1116},[1079,7040,7041,7044,7046,7048,7050,7052],{"class":1081,"line":2942},[1079,7042,7043],{"class":1196},"                    recipient_list",[1079,7045,3614],{"class":1116},[1079,7047,1240],{"class":1190},[1079,7049,1181],{"class":1116},[1079,7051,1245],{"class":1184},[1079,7053,4399],{"class":1116},[1079,7055,7056],{"class":1081,"line":2947},[1079,7057,7058],{"class":1116},"                )\n",[1079,7060,7061,7064,7066,7069,7071,7073,7075,7077],{"class":1081,"line":2952},[1079,7062,7063],{"class":1096},"                channels_sent",[1079,7065,1181],{"class":1116},[1079,7067,7068],{"class":1190},"append",[1079,7070,1134],{"class":1116},[1079,7072,1232],{"class":1224},[1079,7074,1245],{"class":1228},[1079,7076,1232],{"class":1224},[1079,7078,1204],{"class":1116},[1079,7080,7081],{"class":1081,"line":2957},[1079,7082,6945],{"class":1096},[1079,7084,7085],{"class":1081,"line":2963},[1079,7086,7087],{"class":1085},"            # SMS notification (if configured)\n",[1079,7089,7090,7092,7094,7096,7098,7100,7102,7104,7106,7108,7111,7113,7115,7117,7119,7122],{"class":1081,"line":2981},[1079,7091,5357],{"class":1092},[1079,7093,1983],{"class":1482},[1079,7095,1134],{"class":1116},[1079,7097,1240],{"class":1190},[1079,7099,1141],{"class":1116},[1079,7101,1225],{"class":1224},[1079,7103,5468],{"class":1228},[1079,7105,1232],{"class":1224},[1079,7107,1999],{"class":1116},[1079,7109,7110],{"class":1577}," and",[1079,7112,5053],{"class":1096},[1079,7114,1181],{"class":1116},[1079,7116,5468],{"class":1184},[1079,7118,1181],{"class":1116},[1079,7120,7121],{"class":1184},"phone_number",[1079,7123,3572],{"class":1116},[1079,7125,7126],{"class":1081,"line":2986},[1079,7127,7128],{"class":1085},"                # send_sms(user.profile.phone_number, message)\n",[1079,7130,7131,7133,7135,7137,7139,7141,7144,7146],{"class":1081,"line":2992},[1079,7132,7063],{"class":1096},[1079,7134,1181],{"class":1116},[1079,7136,7068],{"class":1190},[1079,7138,1134],{"class":1116},[1079,7140,1232],{"class":1224},[1079,7142,7143],{"class":1228},"sms",[1079,7145,1232],{"class":1224},[1079,7147,1204],{"class":1116},[1079,7149,7150],{"class":1081,"line":3006},[1079,7151,6945],{"class":1096},[1079,7153,7154],{"class":1081,"line":3011},[1079,7155,7156],{"class":1085},"            # Push notification\n",[1079,7158,7159],{"class":1081,"line":3017},[1079,7160,7161],{"class":1085},"            # send_push_notification(user, message)\n",[1079,7163,7164,7167,7169,7171,7173,7175,7178,7180],{"class":1081,"line":3031},[1079,7165,7166],{"class":1096},"            channels_sent",[1079,7168,1181],{"class":1116},[1079,7170,7068],{"class":1190},[1079,7172,1134],{"class":1116},[1079,7174,1232],{"class":1224},[1079,7176,7177],{"class":1228},"push",[1079,7179,1232],{"class":1224},[1079,7181,1204],{"class":1116},[1079,7183,7184],{"class":1081,"line":3042},[1079,7185,6945],{"class":1096},[1079,7187,7188,7191,7193],{"class":1081,"line":3047},[1079,7189,7190],{"class":1096},"            successful_sends ",[1079,7192,5846],{"class":1116},[1079,7194,5849],{"class":1546},[1079,7196,7197,7200,7202,7204,7206,7208,7211,7213,7215,7217,7220,7222,7225,7227,7229],{"class":1081,"line":3053},[1079,7198,7199],{"class":1096},"            logger",[1079,7201,1181],{"class":1116},[1079,7203,6544],{"class":1190},[1079,7205,1134],{"class":1116},[1079,7207,1488],{"class":1127},[1079,7209,7210],{"class":1228},"\"Urgent notification sent to user ",[1079,7212,1495],{"class":1494},[1079,7214,1138],{"class":1190},[1079,7216,1501],{"class":1494},[1079,7218,7219],{"class":1228}," via ",[1079,7221,1495],{"class":1494},[1079,7223,7224],{"class":1190},"channels_sent",[1079,7226,1501],{"class":1494},[1079,7228,1594],{"class":1228},[1079,7230,1204],{"class":1116},[1079,7232,7233],{"class":1081,"line":3064},[1079,7234,5012],{"class":1096},[1079,7236,7237,7240,7242,7244,7246],{"class":1081,"line":3074},[1079,7238,7239],{"class":1092},"        except",[1079,7241,1178],{"class":1096},[1079,7243,1181],{"class":1116},[1079,7245,5182],{"class":1184},[1079,7247,3572],{"class":1116},[1079,7249,7250,7253,7255],{"class":1081,"line":3079},[1079,7251,7252],{"class":1096},"            failed_sends ",[1079,7254,5846],{"class":1116},[1079,7256,5849],{"class":1546},[1079,7258,7259,7261,7263,7266,7268,7270,7272,7274,7276,7278,7281],{"class":1081,"line":3089},[1079,7260,7199],{"class":1096},[1079,7262,1181],{"class":1116},[1079,7264,7265],{"class":1190},"warning",[1079,7267,1134],{"class":1116},[1079,7269,1488],{"class":1127},[1079,7271,6618],{"class":1228},[1079,7273,1495],{"class":1494},[1079,7275,1138],{"class":1190},[1079,7277,1501],{"class":1494},[1079,7279,7280],{"class":1228}," not found for urgent notification\"",[1079,7282,1204],{"class":1116},[1079,7284,7285],{"class":1081,"line":3105},[1079,7286,5012],{"class":1096},[1079,7288,7289,7291,7293,7295,7297],{"class":1081,"line":3122},[1079,7290,7239],{"class":1092},[1079,7292,5209],{"class":3733},[1079,7294,5212],{"class":1092},[1079,7296,5215],{"class":1096},[1079,7298,3572],{"class":1116},[1079,7300,7301,7303,7305],{"class":1081,"line":3136},[1079,7302,7252],{"class":1096},[1079,7304,5846],{"class":1116},[1079,7306,5849],{"class":1546},[1079,7308,7309,7311,7313,7315,7317,7319,7322,7324,7326,7328,7331,7333,7335,7337,7339],{"class":1081,"line":3150},[1079,7310,7199],{"class":1096},[1079,7312,1181],{"class":1116},[1079,7314,6611],{"class":1190},[1079,7316,1134],{"class":1116},[1079,7318,1488],{"class":1127},[1079,7320,7321],{"class":1228},"\"Failed to send urgent notification to user ",[1079,7323,1495],{"class":1494},[1079,7325,1138],{"class":1190},[1079,7327,1501],{"class":1494},[1079,7329,7330],{"class":1228},": ",[1079,7332,1495],{"class":1494},[1079,7334,5241],{"class":1190},[1079,7336,1501],{"class":1494},[1079,7338,1594],{"class":1228},[1079,7340,1204],{"class":1116},[1079,7342,7343],{"class":1081,"line":3171},[1079,7344,1511],{"class":1096},[1079,7346,7347,7349],{"class":1081,"line":3192},[1079,7348,1646],{"class":1092},[1079,7350,2048],{"class":1116},[1079,7352,7353,7355,7358,7360,7362,7365],{"class":1081,"line":3213},[1079,7354,1739],{"class":1224},[1079,7356,7357],{"class":1228},"successful_sends",[1079,7359,1232],{"class":1224},[1079,7361,1747],{"class":1116},[1079,7363,7364],{"class":1096}," successful_sends",[1079,7366,1757],{"class":1116},[1079,7368,7369,7371,7374,7376,7378,7381],{"class":1081,"line":3219},[1079,7370,1739],{"class":1224},[1079,7372,7373],{"class":1228},"failed_sends",[1079,7375,1232],{"class":1224},[1079,7377,1747],{"class":1116},[1079,7379,7380],{"class":1096}," failed_sends",[1079,7382,1757],{"class":1116},[1079,7384,7385,7387,7390,7392,7394,7396,7398,7401],{"class":1081,"line":3224},[1079,7386,1739],{"class":1224},[1079,7388,7389],{"class":1228},"total_users",[1079,7391,1232],{"class":1224},[1079,7393,1747],{"class":1116},[1079,7395,5904],{"class":1482},[1079,7397,1134],{"class":1116},[1079,7399,7400],{"class":1190},"user_ids",[1079,7402,1204],{"class":1116},[1079,7404,7405],{"class":1081,"line":3238},[1079,7406,2145],{"class":1116},[1079,7408,7409],{"class":1081,"line":3252},[1079,7410,1110],{"emptyLinePlaceholder":1109},[1079,7412,7413,7415,7417,7419,7421,7423,7425],{"class":1081,"line":3274},[1079,7414,1117],{"class":1116},[1079,7416,6136],{"class":1120},[1079,7418,1134],{"class":1116},[1079,7420,6806],{"class":1196},[1079,7422,1175],{"class":1116},[1079,7424,3476],{"class":1957},[1079,7426,1204],{"class":1116},[1079,7428,7429,7431,7434,7436,7438,7440,7443,7445,7448,7450,7452,7454],{"class":1081,"line":3293},[1079,7430,1128],{"class":1127},[1079,7432,7433],{"class":1120}," batch_process_posts",[1079,7435,1134],{"class":1116},[1079,7437,3718],{"class":3717},[1079,7439,1141],{"class":1116},[1079,7441,7442],{"class":1137}," post_ids",[1079,7444,1141],{"class":1116},[1079,7446,7447],{"class":1137}," operation",[1079,7449,1141],{"class":1116},[1079,7451,3723],{"class":1577},[1079,7453,3800],{"class":1137},[1079,7455,1152],{"class":1116},[1079,7457,7458,7460,7463],{"class":1081,"line":3310},[1079,7459,1159],{"class":1158},[1079,7461,7462],{"class":1162},"Batch process multiple posts.",[1079,7464,1166],{"class":1158},[1079,7466,7467,7470,7472],{"class":1081,"line":3315},[1079,7468,7469],{"class":1096},"    results ",[1079,7471,1175],{"class":1116},[1079,7473,2048],{"class":1116},[1079,7475,7476,7478,7481,7483,7485],{"class":1081,"line":3320},[1079,7477,1739],{"class":1224},[1079,7479,7480],{"class":1228},"successful",[1079,7482,1232],{"class":1224},[1079,7484,1747],{"class":1116},[1079,7486,7487],{"class":1116}," [],\n",[1079,7489,7491,7493,7496,7498,7500],{"class":1081,"line":7490},115,[1079,7492,1739],{"class":1224},[1079,7494,7495],{"class":1228},"failed",[1079,7497,1232],{"class":1224},[1079,7499,1747],{"class":1116},[1079,7501,7487],{"class":1116},[1079,7503,7505,7507,7510,7512,7514,7516,7518,7521],{"class":1081,"line":7504},116,[1079,7506,1739],{"class":1224},[1079,7508,7509],{"class":1228},"total",[1079,7511,1232],{"class":1224},[1079,7513,1747],{"class":1116},[1079,7515,5904],{"class":1482},[1079,7517,1134],{"class":1116},[1079,7519,7520],{"class":1190},"post_ids",[1079,7522,1204],{"class":1116},[1079,7524,7526],{"class":1081,"line":7525},117,[1079,7527,2145],{"class":1116},[1079,7529,7531],{"class":1081,"line":7530},118,[1079,7532,1511],{"class":1096},[1079,7534,7536,7538,7541,7543,7546,7548,7551,7553,7555],{"class":1081,"line":7535},119,[1079,7537,1516],{"class":1092},[1079,7539,7540],{"class":1096}," i",[1079,7542,1141],{"class":1116},[1079,7544,7545],{"class":1096}," post_id ",[1079,7547,1522],{"class":1092},[1079,7549,7550],{"class":1482}," enumerate",[1079,7552,1134],{"class":1116},[1079,7554,7520],{"class":1190},[1079,7556,1152],{"class":1116},[1079,7558,7560,7562],{"class":1081,"line":7559},120,[1079,7561,6911],{"class":1092},[1079,7563,3572],{"class":1116},[1079,7565,7567],{"class":1081,"line":7566},121,[1079,7568,7569],{"class":1085},"            # Update task progress\n",[1079,7571,7573,7576,7578,7581],{"class":1081,"line":7572},122,[1079,7574,7575],{"class":2041},"            self",[1079,7577,1181],{"class":1116},[1079,7579,7580],{"class":1190},"update_state",[1079,7582,3495],{"class":1116},[1079,7584,7586,7589,7591,7593,7596,7598],{"class":1081,"line":7585},123,[1079,7587,7588],{"class":1196},"                state",[1079,7590,1175],{"class":1116},[1079,7592,1232],{"class":1224},[1079,7594,7595],{"class":1228},"PROGRESS",[1079,7597,1232],{"class":1224},[1079,7599,1757],{"class":1116},[1079,7601,7603,7606],{"class":1081,"line":7602},124,[1079,7604,7605],{"class":1196},"                meta",[1079,7607,7608],{"class":1116},"={\n",[1079,7610,7612,7615,7618,7620,7622,7624,7626,7628],{"class":1081,"line":7611},125,[1079,7613,7614],{"class":1224},"                    '",[1079,7616,7617],{"class":1228},"current",[1079,7619,1232],{"class":1224},[1079,7621,1747],{"class":1116},[1079,7623,1519],{"class":1190},[1079,7625,1578],{"class":1577},[1079,7627,2564],{"class":1546},[1079,7629,1757],{"class":1116},[1079,7631,7633,7635,7637,7639,7641,7643,7645,7647],{"class":1081,"line":7632},126,[1079,7634,7614],{"class":1224},[1079,7636,7509],{"class":1228},[1079,7638,1232],{"class":1224},[1079,7640,1747],{"class":1116},[1079,7642,5904],{"class":1482},[1079,7644,1134],{"class":1116},[1079,7646,7520],{"class":1190},[1079,7648,3880],{"class":1116},[1079,7650,7652,7654,7656,7658,7660,7662,7665,7667,7670,7672],{"class":1081,"line":7651},127,[1079,7653,7614],{"class":1224},[1079,7655,1765],{"class":1228},[1079,7657,1232],{"class":1224},[1079,7659,1747],{"class":1116},[1079,7661,1610],{"class":1127},[1079,7663,7664],{"class":1228},"'Processing post ",[1079,7666,1495],{"class":1494},[1079,7668,7669],{"class":1190},"post_id",[1079,7671,1501],{"class":1494},[1079,7673,1798],{"class":1228},[1079,7675,7677],{"class":1081,"line":7676},128,[1079,7678,7679],{"class":1116},"                }\n",[1079,7681,7683],{"class":1081,"line":7682},129,[1079,7684,7685],{"class":1116},"            )\n",[1079,7687,7689],{"class":1081,"line":7688},130,[1079,7690,6945],{"class":1096},[1079,7692,7694,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717],{"class":1081,"line":7693},131,[1079,7695,7696],{"class":1096},"            post ",[1079,7698,1175],{"class":1116},[1079,7700,4836],{"class":1096},[1079,7702,1181],{"class":1116},[1079,7704,1185],{"class":1184},[1079,7706,1181],{"class":1116},[1079,7708,1191],{"class":1190},[1079,7710,1134],{"class":1116},[1079,7712,1197],{"class":1196},[1079,7714,1175],{"class":1116},[1079,7716,7669],{"class":1190},[1079,7718,1204],{"class":1116},[1079,7720,7722],{"class":1081,"line":7721},132,[1079,7723,6945],{"class":1096},[1079,7725,7727,7729,7732,7735,7737,7740,7742],{"class":1081,"line":7726},133,[1079,7728,5357],{"class":1092},[1079,7730,7731],{"class":1096}," operation ",[1079,7733,7734],{"class":1577},"==",[1079,7736,1225],{"class":1224},[1079,7738,7739],{"class":1228},"publish",[1079,7741,1232],{"class":1224},[1079,7743,3572],{"class":1116},[1079,7745,7747,7750,7752,7755,7757],{"class":1081,"line":7746},134,[1079,7748,7749],{"class":1096},"                post",[1079,7751,1181],{"class":1116},[1079,7753,7754],{"class":1184},"published",[1079,7756,2045],{"class":1116},[1079,7758,3061],{"class":1957},[1079,7760,7762,7764,7766,7769,7771,7773,7775,7778],{"class":1081,"line":7761},135,[1079,7763,7749],{"class":1096},[1079,7765,1181],{"class":1116},[1079,7767,7768],{"class":1184},"published_at",[1079,7770,2045],{"class":1116},[1079,7772,6086],{"class":1096},[1079,7774,1181],{"class":1116},[1079,7776,7777],{"class":1190},"now",[1079,7779,1852],{"class":1116},[1079,7781,7783,7786,7788,7790,7792,7795,7797],{"class":1081,"line":7782},136,[1079,7784,7785],{"class":1092},"            elif",[1079,7787,7731],{"class":1096},[1079,7789,7734],{"class":1577},[1079,7791,1225],{"class":1224},[1079,7793,7794],{"class":1228},"unpublish",[1079,7796,1232],{"class":1224},[1079,7798,3572],{"class":1116},[1079,7800,7802,7804,7806,7808,7810],{"class":1081,"line":7801},137,[1079,7803,7749],{"class":1096},[1079,7805,1181],{"class":1116},[1079,7807,7754],{"class":1184},[1079,7809,2045],{"class":1116},[1079,7811,7812],{"class":1957}," False\n",[1079,7814,7816,7818,7820,7822,7824,7827,7829],{"class":1081,"line":7815},138,[1079,7817,7785],{"class":1092},[1079,7819,7731],{"class":1096},[1079,7821,7734],{"class":1577},[1079,7823,1225],{"class":1224},[1079,7825,7826],{"class":1228},"feature",[1079,7828,1232],{"class":1224},[1079,7830,3572],{"class":1116},[1079,7832,7834,7836,7838,7841,7843],{"class":1081,"line":7833},139,[1079,7835,7749],{"class":1096},[1079,7837,1181],{"class":1116},[1079,7839,7840],{"class":1184},"featured",[1079,7842,2045],{"class":1116},[1079,7844,3061],{"class":1957},[1079,7846,7848,7850,7852,7854,7856,7859,7861],{"class":1081,"line":7847},140,[1079,7849,7785],{"class":1092},[1079,7851,7731],{"class":1096},[1079,7853,7734],{"class":1577},[1079,7855,1225],{"class":1224},[1079,7857,7858],{"class":1228},"update_category",[1079,7860,1232],{"class":1224},[1079,7862,3572],{"class":1116},[1079,7864,7866,7869,7871,7874,7876,7878,7880,7882,7885,7887],{"class":1081,"line":7865},141,[1079,7867,7868],{"class":1096},"                category_id ",[1079,7870,1175],{"class":1116},[1079,7872,7873],{"class":1096}," kwargs",[1079,7875,1181],{"class":1116},[1079,7877,1191],{"class":1190},[1079,7879,1134],{"class":1116},[1079,7881,1232],{"class":1224},[1079,7883,7884],{"class":1228},"category_id",[1079,7886,1232],{"class":1224},[1079,7888,1204],{"class":1116},[1079,7890,7892,7895,7898],{"class":1081,"line":7891},142,[1079,7893,7894],{"class":1092},"                if",[1079,7896,7897],{"class":1096}," category_id",[1079,7899,3572],{"class":1116},[1079,7901,7903,7906,7908,7910,7912],{"class":1081,"line":7902},143,[1079,7904,7905],{"class":1096},"                    post",[1079,7907,1181],{"class":1116},[1079,7909,7884],{"class":1184},[1079,7911,2045],{"class":1116},[1079,7913,7914],{"class":1096}," category_id\n",[1079,7916,7918],{"class":1081,"line":7917},144,[1079,7919,6945],{"class":1096},[1079,7921,7923,7926,7928,7930],{"class":1081,"line":7922},145,[1079,7924,7925],{"class":1096},"            post",[1079,7927,1181],{"class":1116},[1079,7929,5403],{"class":1190},[1079,7931,1852],{"class":1116},[1079,7933,7935,7938,7941,7943,7945,7947,7950,7952,7954,7956],{"class":1081,"line":7934},146,[1079,7936,7937],{"class":1096},"            results",[1079,7939,7940],{"class":1116},"[",[1079,7942,1232],{"class":1224},[1079,7944,7480],{"class":1228},[1079,7946,1232],{"class":1224},[1079,7948,7949],{"class":1116},"].",[1079,7951,7068],{"class":1190},[1079,7953,1134],{"class":1116},[1079,7955,7669],{"class":1190},[1079,7957,1204],{"class":1116},[1079,7959,7961],{"class":1081,"line":7960},147,[1079,7962,5012],{"class":1096},[1079,7964,7966,7968,7970,7972,7974],{"class":1081,"line":7965},148,[1079,7967,7239],{"class":1092},[1079,7969,4836],{"class":1096},[1079,7971,1181],{"class":1116},[1079,7973,5182],{"class":1184},[1079,7975,3572],{"class":1116},[1079,7977,7979,7981,7983,7985,7987,7989,7991,7993],{"class":1081,"line":7978},149,[1079,7980,7937],{"class":1096},[1079,7982,7940],{"class":1116},[1079,7984,1232],{"class":1224},[1079,7986,7495],{"class":1228},[1079,7988,1232],{"class":1224},[1079,7990,7949],{"class":1116},[1079,7992,7068],{"class":1190},[1079,7994,1733],{"class":1116},[1079,7996,7998,8000,8002,8004,8006,8009],{"class":1081,"line":7997},150,[1079,7999,2228],{"class":1224},[1079,8001,7669],{"class":1228},[1079,8003,1232],{"class":1224},[1079,8005,1747],{"class":1116},[1079,8007,8008],{"class":1190}," post_id",[1079,8010,1757],{"class":1116},[1079,8012,8014,8016,8018,8020,8022,8024,8027],{"class":1081,"line":8013},151,[1079,8015,2228],{"class":1224},[1079,8017,6611],{"class":1228},[1079,8019,1232],{"class":1224},[1079,8021,1747],{"class":1116},[1079,8023,1225],{"class":1224},[1079,8025,8026],{"class":1228},"Post not found",[1079,8028,1798],{"class":1224},[1079,8030,8032],{"class":1081,"line":8031},152,[1079,8033,8034],{"class":1116},"            })\n",[1079,8036,8038],{"class":1081,"line":8037},153,[1079,8039,5012],{"class":1096},[1079,8041,8043,8045,8047,8049,8051],{"class":1081,"line":8042},154,[1079,8044,7239],{"class":1092},[1079,8046,5209],{"class":3733},[1079,8048,5212],{"class":1092},[1079,8050,5215],{"class":1096},[1079,8052,3572],{"class":1116},[1079,8054,8056,8058,8060,8062,8064,8066,8068,8070],{"class":1081,"line":8055},155,[1079,8057,7937],{"class":1096},[1079,8059,7940],{"class":1116},[1079,8061,1232],{"class":1224},[1079,8063,7495],{"class":1228},[1079,8065,1232],{"class":1224},[1079,8067,7949],{"class":1116},[1079,8069,7068],{"class":1190},[1079,8071,1733],{"class":1116},[1079,8073,8075,8077,8079,8081,8083,8085],{"class":1081,"line":8074},156,[1079,8076,2228],{"class":1224},[1079,8078,7669],{"class":1228},[1079,8080,1232],{"class":1224},[1079,8082,1747],{"class":1116},[1079,8084,8008],{"class":1190},[1079,8086,1757],{"class":1116},[1079,8088,8090,8092,8094,8096,8098,8101,8103,8105],{"class":1081,"line":8089},157,[1079,8091,2228],{"class":1224},[1079,8093,6611],{"class":1228},[1079,8095,1232],{"class":1224},[1079,8097,1747],{"class":1116},[1079,8099,8100],{"class":3733}," str",[1079,8102,1134],{"class":1116},[1079,8104,5241],{"class":1190},[1079,8106,1204],{"class":1116},[1079,8108,8110],{"class":1081,"line":8109},158,[1079,8111,8034],{"class":1116},[1079,8113,8115],{"class":1081,"line":8114},159,[1079,8116,1511],{"class":1096},[1079,8118,8120,8122],{"class":1081,"line":8119},160,[1079,8121,1646],{"class":1092},[1079,8123,8124],{"class":1096}," results\n",[1079,8126,8128],{"class":1081,"line":8127},161,[1079,8129,1110],{"emptyLinePlaceholder":1109},[1079,8131,8133,8135,8137,8139,8141,8143,8145,8147,8150,8152,8155,8157],{"class":1081,"line":8132},162,[1079,8134,1117],{"class":1116},[1079,8136,6136],{"class":1120},[1079,8138,1134],{"class":1116},[1079,8140,6806],{"class":1196},[1079,8142,1175],{"class":1116},[1079,8144,3476],{"class":1957},[1079,8146,1141],{"class":1116},[1079,8148,8149],{"class":1196}," time_limit",[1079,8151,1175],{"class":1116},[1079,8153,8154],{"class":1546},"3600",[1079,8156,1999],{"class":1116},[1079,8158,8159],{"class":1085},"  # 1 hour limit\n",[1079,8161,8163,8165,8168,8170,8172,8174,8177,8179,8182,8184,8186],{"class":1081,"line":8162},163,[1079,8164,1128],{"class":1127},[1079,8166,8167],{"class":1120}," generate_report",[1079,8169,1134],{"class":1116},[1079,8171,3718],{"class":3717},[1079,8173,1141],{"class":1116},[1079,8175,8176],{"class":1137}," report_type",[1079,8178,1141],{"class":1116},[1079,8180,8181],{"class":1137}," date_range",[1079,8183,1141],{"class":1116},[1079,8185,6240],{"class":1137},[1079,8187,1152],{"class":1116},[1079,8189,8191,8193,8196],{"class":1081,"line":8190},164,[1079,8192,1159],{"class":1158},[1079,8194,8195],{"class":1162},"Generate comprehensive report.",[1079,8197,1166],{"class":1158},[1079,8199,8201,8203],{"class":1081,"line":8200},165,[1079,8202,4978],{"class":1092},[1079,8204,3572],{"class":1116},[1079,8206,8208,8210,8212,8214,8216,8218,8220,8222,8224,8226,8228,8230],{"class":1081,"line":8207},166,[1079,8209,4985],{"class":1096},[1079,8211,1175],{"class":1116},[1079,8213,1178],{"class":1096},[1079,8215,1181],{"class":1116},[1079,8217,1185],{"class":1184},[1079,8219,1181],{"class":1116},[1079,8221,1191],{"class":1190},[1079,8223,1134],{"class":1116},[1079,8225,1197],{"class":1196},[1079,8227,1175],{"class":1116},[1079,8229,1138],{"class":1190},[1079,8231,1204],{"class":1116},[1079,8233,8235],{"class":1081,"line":8234},167,[1079,8236,5012],{"class":1096},[1079,8238,8240],{"class":1081,"line":8239},168,[1079,8241,8242],{"class":1085},"        # Update progress\n",[1079,8244,8246,8248,8250,8252],{"class":1081,"line":8245},169,[1079,8247,3754],{"class":2041},[1079,8249,1181],{"class":1116},[1079,8251,7580],{"class":1190},[1079,8253,3495],{"class":1116},[1079,8255,8257,8260,8262,8264,8266,8268],{"class":1081,"line":8256},170,[1079,8258,8259],{"class":1196},"            state",[1079,8261,1175],{"class":1116},[1079,8263,1232],{"class":1224},[1079,8265,7595],{"class":1228},[1079,8267,1232],{"class":1224},[1079,8269,1757],{"class":1116},[1079,8271,8273,8276,8279,8281,8283,8285,8287,8289,8292,8294],{"class":1081,"line":8272},171,[1079,8274,8275],{"class":1196},"            meta",[1079,8277,8278],{"class":1116},"={",[1079,8280,1232],{"class":1224},[1079,8282,1765],{"class":1228},[1079,8284,1232],{"class":1224},[1079,8286,1747],{"class":1116},[1079,8288,1225],{"class":1224},[1079,8290,8291],{"class":1228},"Initializing report generation",[1079,8293,1232],{"class":1224},[1079,8295,2150],{"class":1116},[1079,8297,8299],{"class":1081,"line":8298},172,[1079,8300,3936],{"class":1116},[1079,8302,8304],{"class":1081,"line":8303},173,[1079,8305,5012],{"class":1096},[1079,8307,8309,8311,8313,8316,8318],{"class":1081,"line":8308},174,[1079,8310,6311],{"class":1092},[1079,8312,4829],{"class":1116},[1079,8314,8315],{"class":1096},"reports ",[1079,8317,1100],{"class":1092},[1079,8319,8320],{"class":1096}," ReportGenerator\n",[1079,8322,8324,8327,8329,8332,8334,8337,8339,8341],{"class":1081,"line":8323},175,[1079,8325,8326],{"class":1096},"        generator ",[1079,8328,1175],{"class":1116},[1079,8330,8331],{"class":1190}," ReportGenerator",[1079,8333,1134],{"class":1116},[1079,8335,8336],{"class":1190},"report_type",[1079,8338,1141],{"class":1116},[1079,8340,8181],{"class":1190},[1079,8342,1204],{"class":1116},[1079,8344,8346],{"class":1081,"line":8345},176,[1079,8347,5012],{"class":1096},[1079,8349,8351],{"class":1081,"line":8350},177,[1079,8352,8353],{"class":1085},"        # Generate report sections\n",[1079,8355,8357,8360,8362,8364,8366,8369,8371,8373,8375,8378,8380,8382,8384,8387,8389,8391,8393,8396,8398],{"class":1081,"line":8356},178,[1079,8358,8359],{"class":1096},"        sections ",[1079,8361,1175],{"class":1116},[1079,8363,1237],{"class":1116},[1079,8365,1232],{"class":1224},[1079,8367,8368],{"class":1228},"summary",[1079,8370,1232],{"class":1224},[1079,8372,1141],{"class":1116},[1079,8374,1225],{"class":1224},[1079,8376,8377],{"class":1228},"details",[1079,8379,1232],{"class":1224},[1079,8381,1141],{"class":1116},[1079,8383,1225],{"class":1224},[1079,8385,8386],{"class":1228},"charts",[1079,8388,1232],{"class":1224},[1079,8390,1141],{"class":1116},[1079,8392,1225],{"class":1224},[1079,8394,8395],{"class":1228},"export",[1079,8397,1232],{"class":1224},[1079,8399,4399],{"class":1116},[1079,8401,8403],{"class":1081,"line":8402},179,[1079,8404,5012],{"class":1096},[1079,8406,8408,8410,8412,8414,8417,8419,8421,8423,8426],{"class":1081,"line":8407},180,[1079,8409,5332],{"class":1092},[1079,8411,7540],{"class":1096},[1079,8413,1141],{"class":1116},[1079,8415,8416],{"class":1096}," section ",[1079,8418,1522],{"class":1092},[1079,8420,7550],{"class":1482},[1079,8422,1134],{"class":1116},[1079,8424,8425],{"class":1190},"sections",[1079,8427,1152],{"class":1116},[1079,8429,8431,8433,8435,8437],{"class":1081,"line":8430},181,[1079,8432,7575],{"class":2041},[1079,8434,1181],{"class":1116},[1079,8436,7580],{"class":1190},[1079,8438,3495],{"class":1116},[1079,8440,8442,8444,8446,8448,8450,8452],{"class":1081,"line":8441},182,[1079,8443,7588],{"class":1196},[1079,8445,1175],{"class":1116},[1079,8447,1232],{"class":1224},[1079,8449,7595],{"class":1228},[1079,8451,1232],{"class":1224},[1079,8453,1757],{"class":1116},[1079,8455,8457,8459],{"class":1081,"line":8456},183,[1079,8458,7605],{"class":1196},[1079,8460,7608],{"class":1116},[1079,8462,8464,8466,8468,8470,8472,8474,8476,8478],{"class":1081,"line":8463},184,[1079,8465,7614],{"class":1224},[1079,8467,7617],{"class":1228},[1079,8469,1232],{"class":1224},[1079,8471,1747],{"class":1116},[1079,8473,1519],{"class":1190},[1079,8475,1578],{"class":1577},[1079,8477,2564],{"class":1546},[1079,8479,1757],{"class":1116},[1079,8481,8483,8485,8487,8489,8491,8493,8495,8497],{"class":1081,"line":8482},185,[1079,8484,7614],{"class":1224},[1079,8486,7509],{"class":1228},[1079,8488,1232],{"class":1224},[1079,8490,1747],{"class":1116},[1079,8492,5904],{"class":1482},[1079,8494,1134],{"class":1116},[1079,8496,8425],{"class":1190},[1079,8498,3880],{"class":1116},[1079,8500,8502,8504,8506,8508,8510,8512,8515,8517,8520,8522],{"class":1081,"line":8501},186,[1079,8503,7614],{"class":1224},[1079,8505,1765],{"class":1228},[1079,8507,1232],{"class":1224},[1079,8509,1747],{"class":1116},[1079,8511,1610],{"class":1127},[1079,8513,8514],{"class":1228},"'Generating ",[1079,8516,1495],{"class":1494},[1079,8518,8519],{"class":1190},"section",[1079,8521,1501],{"class":1494},[1079,8523,8524],{"class":1228}," section'\n",[1079,8526,8528],{"class":1081,"line":8527},187,[1079,8529,7679],{"class":1116},[1079,8531,8533],{"class":1081,"line":8532},188,[1079,8534,7685],{"class":1116},[1079,8536,8538],{"class":1081,"line":8537},189,[1079,8539,6945],{"class":1096},[1079,8541,8543,8546,8548,8551,8553,8555],{"class":1081,"line":8542},190,[1079,8544,8545],{"class":1096},"            generator",[1079,8547,1181],{"class":1116},[1079,8549,8550],{"class":1190},"generate_section",[1079,8552,1134],{"class":1116},[1079,8554,8519],{"class":1190},[1079,8556,1204],{"class":1116},[1079,8558,8560],{"class":1081,"line":8559},191,[1079,8561,5012],{"class":1096},[1079,8563,8565],{"class":1081,"line":8564},192,[1079,8566,8567],{"class":1085},"        # Finalize report\n",[1079,8569,8571,8574,8576,8579,8581,8584],{"class":1081,"line":8570},193,[1079,8572,8573],{"class":1096},"        report_path ",[1079,8575,1175],{"class":1116},[1079,8577,8578],{"class":1096}," generator",[1079,8580,1181],{"class":1116},[1079,8582,8583],{"class":1190},"finalize",[1079,8585,1852],{"class":1116},[1079,8587,8589],{"class":1081,"line":8588},194,[1079,8590,5012],{"class":1096},[1079,8592,8594],{"class":1081,"line":8593},195,[1079,8595,8596],{"class":1085},"        # Send report to user\n",[1079,8598,8600,8602],{"class":1081,"line":8599},196,[1079,8601,5072],{"class":1190},[1079,8603,3495],{"class":1116},[1079,8605,8607,8609,8611,8613,8616,8618,8620,8622,8624],{"class":1081,"line":8606},197,[1079,8608,5079],{"class":1196},[1079,8610,1175],{"class":1116},[1079,8612,1488],{"class":1127},[1079,8614,8615],{"class":1228},"'Report Ready: ",[1079,8617,1495],{"class":1494},[1079,8619,8336],{"class":1190},[1079,8621,1501],{"class":1494},[1079,8623,1232],{"class":1228},[1079,8625,1757],{"class":1116},[1079,8627,8629,8631,8633,8635,8638,8640,8642,8644,8647],{"class":1081,"line":8628},198,[1079,8630,5090],{"class":1196},[1079,8632,1175],{"class":1116},[1079,8634,1488],{"class":1127},[1079,8636,8637],{"class":1228},"'Your ",[1079,8639,1495],{"class":1494},[1079,8641,8336],{"class":1190},[1079,8643,1501],{"class":1494},[1079,8645,8646],{"class":1228}," report is ready for download.'",[1079,8648,1757],{"class":1116},[1079,8650,8652,8654,8656,8658,8661,8663],{"class":1081,"line":8651},199,[1079,8653,5101],{"class":1196},[1079,8655,1175],{"class":1116},[1079,8657,1232],{"class":1224},[1079,8659,8660],{"class":1228},"reports@example.com",[1079,8662,1232],{"class":1224},[1079,8664,1757],{"class":1116},[1079,8666,8668,8670,8672,8674,8676,8678],{"class":1081,"line":8667},200,[1079,8669,5117],{"class":1196},[1079,8671,3614],{"class":1116},[1079,8673,1240],{"class":1190},[1079,8675,1181],{"class":1116},[1079,8677,1245],{"class":1184},[1079,8679,4399],{"class":1116},[1079,8681,8683],{"class":1081,"line":8682},201,[1079,8684,3936],{"class":1116},[1079,8686,8688],{"class":1081,"line":8687},202,[1079,8689,5012],{"class":1096},[1079,8691,8693,8695],{"class":1081,"line":8692},203,[1079,8694,3817],{"class":1092},[1079,8696,2048],{"class":1116},[1079,8698,8700,8702,8705,8707,8709,8712],{"class":1081,"line":8699},204,[1079,8701,2100],{"class":1224},[1079,8703,8704],{"class":1228},"report_path",[1079,8706,1232],{"class":1224},[1079,8708,1747],{"class":1116},[1079,8710,8711],{"class":1096}," report_path",[1079,8713,1757],{"class":1116},[1079,8715,8717,8719,8721,8723,8725,8727],{"class":1081,"line":8716},205,[1079,8718,2100],{"class":1224},[1079,8720,8336],{"class":1228},[1079,8722,1232],{"class":1224},[1079,8724,1747],{"class":1116},[1079,8726,8176],{"class":1096},[1079,8728,1757],{"class":1116},[1079,8730,8732,8734,8737,8739,8741,8743,8745,8747],{"class":1081,"line":8731},206,[1079,8733,2100],{"class":1224},[1079,8735,8736],{"class":1228},"generated_for",[1079,8738,1232],{"class":1224},[1079,8740,1747],{"class":1116},[1079,8742,5053],{"class":1096},[1079,8744,1181],{"class":1116},[1079,8746,1245],{"class":1184},[1079,8748,1757],{"class":1116},[1079,8750,8752,8754,8757,8759,8761,8763,8765,8767],{"class":1081,"line":8751},207,[1079,8753,2100],{"class":1224},[1079,8755,8756],{"class":1228},"sections_generated",[1079,8758,1232],{"class":1224},[1079,8760,1747],{"class":1116},[1079,8762,5904],{"class":1482},[1079,8764,1134],{"class":1116},[1079,8766,8425],{"class":1190},[1079,8768,1204],{"class":1116},[1079,8770,8772],{"class":1081,"line":8771},208,[1079,8773,2140],{"class":1116},[1079,8775,8777],{"class":1081,"line":8776},209,[1079,8778,1511],{"class":1096},[1079,8780,8782,8784,8786,8788,8790],{"class":1081,"line":8781},210,[1079,8783,5175],{"class":1092},[1079,8785,5209],{"class":3733},[1079,8787,5212],{"class":1092},[1079,8789,5215],{"class":1096},[1079,8791,3572],{"class":1116},[1079,8793,8795,8797,8799,8801,8803,8805,8808,8810,8812,8814,8816],{"class":1081,"line":8794},211,[1079,8796,6539],{"class":1096},[1079,8798,1181],{"class":1116},[1079,8800,6611],{"class":1190},[1079,8802,1134],{"class":1116},[1079,8804,1488],{"class":1127},[1079,8806,8807],{"class":1228},"\"Report generation failed: ",[1079,8809,1495],{"class":1494},[1079,8811,5241],{"class":1190},[1079,8813,1501],{"class":1494},[1079,8815,1594],{"class":1228},[1079,8817,1204],{"class":1116},[1079,8819,8821],{"class":1081,"line":8820},212,[1079,8822,8823],{"class":1092},"        raise\n",[1035,8825,8827],{"id":8826},"task-classes","Task Classes",[1069,8829,8831],{"className":1071,"code":8830,"language":1073,"meta":1074,"style":1074},"# Class-based tasks for complex operations\nfrom django.tasks import Task\nfrom django.db import transaction\n\nclass DataMigrationTask(Task):\n    \"\"\"Class-based task for data migration.\"\"\"\n    \n    name = 'data_migration'\n    max_retries = 1\n    time_limit = 7200  # 2 hours\n    \n    def run(self, migration_type, batch_size=1000, **kwargs):\n        \"\"\"Run data migration.\"\"\"\n        self.migration_type = migration_type\n        self.batch_size = batch_size\n        \n        if migration_type == 'user_profiles':\n            return self.migrate_user_profiles()\n        elif migration_type == 'post_categories':\n            return self.migrate_post_categories()\n        else:\n            raise ValueError(f\"Unknown migration type: {migration_type}\")\n    \n    def migrate_user_profiles(self):\n        \"\"\"Migrate user profiles.\"\"\"\n        users_without_profiles = User.objects.filter(userprofile__isnull=True)\n        total_users = users_without_profiles.count()\n        \n        migrated_count = 0\n        \n        for i in range(0, total_users, self.batch_size):\n            batch = users_without_profiles[i:i + self.batch_size]\n            \n            with transaction.atomic():\n                profiles_to_create = []\n                \n                for user in batch:\n                    profiles_to_create.append(\n                        UserProfile(\n                            user=user,\n                            bio='',\n                            created_at=user.date_joined\n                        )\n                    )\n                \n                UserProfile.objects.bulk_create(profiles_to_create)\n                migrated_count += len(profiles_to_create)\n            \n            # Update progress\n            self.update_state(\n                state='PROGRESS',\n                meta={\n                    'current': migrated_count,\n                    'total': total_users,\n                    'status': f'Migrated {migrated_count}/{total_users} profiles'\n                }\n            )\n        \n        return {\n            'migration_type': 'user_profiles',\n            'total_migrated': migrated_count,\n            'batch_size': self.batch_size\n        }\n    \n    def migrate_post_categories(self):\n        \"\"\"Migrate post categories.\"\"\"\n        # Implementation for post category migration\n        pass\n    \n    def on_failure(self, exc, task_id, args, kwargs, einfo):\n        \"\"\"Handle task failure.\"\"\"\n        logger.error(f\"Data migration failed: {exc}\")\n        \n        # Send failure notification\n        send_mail(\n            subject='Data Migration Failed',\n            message=f'Migration {self.migration_type} failed: {exc}',\n            from_email='admin@example.com',\n            recipient_list=['admin@example.com']\n        )\n    \n    def on_success(self, retval, task_id, args, kwargs):\n        \"\"\"Handle task success.\"\"\"\n        logger.info(f\"Data migration completed: {retval}\")\n        \n        # Send success notification\n        send_mail(\n            subject='Data Migration Completed',\n            message=f'Migration completed successfully: {retval}',\n            from_email='admin@example.com',\n            recipient_list=['admin@example.com']\n        )\n\n# Register class-based task\ndata_migration_task = DataMigrationTask()\n\nclass FileProcessingTask(Task):\n    \"\"\"Class-based task for file processing.\"\"\"\n    \n    name = 'file_processing'\n    bind = True\n    max_retries = 2\n    \n    def run(self, file_path, processing_type, **options):\n        \"\"\"Process uploaded file.\"\"\"\n        import os\n        from PIL import Image\n        \n        if not os.path.exists(file_path):\n            raise FileNotFoundError(f\"File not found: {file_path}\")\n        \n        if processing_type == 'image_resize':\n            return self.resize_image(file_path, **options)\n        elif processing_type == 'image_optimize':\n            return self.optimize_image(file_path, **options)\n        elif processing_type == 'generate_thumbnails':\n            return self.generate_thumbnails(file_path, **options)\n        else:\n            raise ValueError(f\"Unknown processing type: {processing_type}\")\n    \n    def resize_image(self, file_path, width, height, **kwargs):\n        \"\"\"Resize image to specified dimensions.\"\"\"\n        try:\n            with Image.open(file_path) as img:\n                # Resize image\n                resized_img = img.resize((width, height), Image.Resampling.LANCZOS)\n                \n                # Save resized image\n                output_path = file_path.replace('.', f'_resized_{width}x{height}.')\n                resized_img.save(output_path, optimize=True, quality=85)\n                \n                return {\n                    'original_path': file_path,\n                    'resized_path': output_path,\n                    'original_size': img.size,\n                    'new_size': (width, height)\n                }\n        \n        except Exception as e:\n            raise Exception(f\"Image resize failed: {str(e)}\")\n    \n    def optimize_image(self, file_path, quality=85, **kwargs):\n        \"\"\"Optimize image for web.\"\"\"\n        try:\n            with Image.open(file_path) as img:\n                # Convert to RGB if necessary\n                if img.mode in ('RGBA', 'P'):\n                    img = img.convert('RGB')\n                \n                # Save optimized image\n                output_path = file_path.replace('.', '_optimized.')\n                img.save(output_path, optimize=True, quality=quality)\n                \n                # Get file sizes\n                original_size = os.path.getsize(file_path)\n                optimized_size = os.path.getsize(output_path)\n                \n                return {\n                    'original_path': file_path,\n                    'optimized_path': output_path,\n                    'original_size': original_size,\n                    'optimized_size': optimized_size,\n                    'compression_ratio': (original_size - optimized_size) / original_size\n                }\n        \n        except Exception as e:\n            raise Exception(f\"Image optimization failed: {str(e)}\")\n    \n    def generate_thumbnails(self, file_path, sizes=None, **kwargs):\n        \"\"\"Generate multiple thumbnail sizes.\"\"\"\n        if sizes is None:\n            sizes = [(150, 150), (300, 300), (600, 600)]\n        \n        thumbnails = []\n        \n        try:\n            with Image.open(file_path) as img:\n                for i, (width, height) in enumerate(sizes):\n                    # Update progress\n                    self.update_state(\n                        state='PROGRESS',\n                        meta={\n                            'current': i + 1,\n                            'total': len(sizes),\n                            'status': f'Generating {width}x{height} thumbnail'\n                        }\n                    )\n                    \n                    # Create thumbnail\n                    thumbnail = img.copy()\n                    thumbnail.thumbnail((width, height), Image.Resampling.LANCZOS)\n                    \n                    # Save thumbnail\n                    output_path = file_path.replace('.', f'_thumb_{width}x{height}.')\n                    thumbnail.save(output_path, optimize=True, quality=85)\n                    \n                    thumbnails.append({\n                        'size': (width, height),\n                        'path': output_path,\n                        'file_size': os.path.getsize(output_path)\n                    })\n                \n                return {\n                    'original_path': file_path,\n                    'thumbnails': thumbnails,\n                    'total_thumbnails': len(thumbnails)\n                }\n        \n        except Exception as e:\n            raise Exception(f\"Thumbnail generation failed: {str(e)}\")\n\n# Register class-based task\nfile_processing_task = FileProcessingTask()\n",[1076,8832,8833,8838,8853,8868,8872,8886,8895,8899,8913,8922,8935,8939,8973,8982,8996,9010,9014,9033,9047,9065,9078,9085,9110,9114,9127,9136,9165,9182,9186,9195,9199,9228,9256,9260,9275,9284,9289,9304,9315,9322,9333,9345,9359,9364,9369,9373,9394,9409,9413,9418,9428,9442,9448,9463,9477,9510,9514,9518,9522,9528,9546,9561,9578,9582,9586,9599,9608,9613,9618,9622,9657,9666,9691,9695,9700,9706,9721,9755,9770,9784,9788,9792,9822,9831,9857,9861,9866,9872,9887,9908,9922,9936,9940,9944,9949,9960,9964,9977,9986,9990,10003,10012,10021,10025,10053,10062,10070,10083,10087,10114,10138,10142,10160,10183,10200,10223,10240,10262,10268,10292,10296,10329,10338,10344,10369,10374,10415,10419,10424,10474,10509,10513,10520,10535,10551,10571,10592,10596,10600,10612,10641,10645,10676,10685,10691,10713,10718,10752,10777,10781,10786,10817,10849,10853,10858,10882,10905,10909,10915,10929,10944,10959,10975,11004,11008,11012,11024,11053,11057,11089,11098,11112,11154,11158,11167,11171,11177,11199,11228,11233,11244,11259,11266,11285,11303,11334,11339,11343,11348,11353,11369,11401,11405,11410,11456,11486,11490,11501,11522,11536,11563,11568,11572,11578,11592,11608,11627,11631,11635,11647,11676,11680,11684],{"__ignoreMap":1074},[1079,8834,8835],{"class":1081,"line":1082},[1079,8836,8837],{"class":1085},"# Class-based tasks for complex operations\n",[1079,8839,8840,8842,8844,8846,8848,8850],{"class":1081,"line":1089},[1079,8841,1093],{"class":1092},[1079,8843,1267],{"class":1096},[1079,8845,1181],{"class":1116},[1079,8847,1272],{"class":1096},[1079,8849,1100],{"class":1092},[1079,8851,8852],{"class":1096}," Task\n",[1079,8854,8855,8857,8859,8861,8863,8865],{"class":1081,"line":1106},[1079,8856,1093],{"class":1092},[1079,8858,1267],{"class":1096},[1079,8860,1181],{"class":1116},[1079,8862,3347],{"class":1096},[1079,8864,1100],{"class":1092},[1079,8866,8867],{"class":1096}," transaction\n",[1079,8869,8870],{"class":1081,"line":1113},[1079,8871,1110],{"emptyLinePlaceholder":1109},[1079,8873,8874,8876,8879,8881,8884],{"class":1081,"line":1124},[1079,8875,3176],{"class":1127},[1079,8877,8878],{"class":3394}," DataMigrationTask",[1079,8880,1134],{"class":1116},[1079,8882,8883],{"class":3400},"Task",[1079,8885,1152],{"class":1116},[1079,8887,8888,8890,8893],{"class":1081,"line":1155},[1079,8889,1159],{"class":1158},[1079,8891,8892],{"class":1162},"Class-based task for data migration.",[1079,8894,1166],{"class":1158},[1079,8896,8897],{"class":1081,"line":1169},[1079,8898,1511],{"class":1096},[1079,8900,8901,8904,8906,8908,8911],{"class":1081,"line":1207},[1079,8902,8903],{"class":1096},"    name ",[1079,8905,1175],{"class":1116},[1079,8907,1225],{"class":1224},[1079,8909,8910],{"class":1228},"data_migration",[1079,8912,1798],{"class":1224},[1079,8914,8915,8918,8920],{"class":1081,"line":1251},[1079,8916,8917],{"class":1096},"    max_retries ",[1079,8919,1175],{"class":1116},[1079,8921,5849],{"class":1546},[1079,8923,8924,8927,8929,8932],{"class":1081,"line":1256},[1079,8925,8926],{"class":1096},"    time_limit ",[1079,8928,1175],{"class":1116},[1079,8930,8931],{"class":1546}," 7200",[1079,8933,8934],{"class":1085},"  # 2 hours\n",[1079,8936,8937],{"class":1081,"line":1262},[1079,8938,1511],{"class":1096},[1079,8940,8941,8943,8946,8948,8950,8952,8955,8957,8960,8962,8965,8967,8969,8971],{"class":1081,"line":1280},[1079,8942,3709],{"class":1127},[1079,8944,8945],{"class":1120}," run",[1079,8947,1134],{"class":1116},[1079,8949,3718],{"class":3717},[1079,8951,1141],{"class":1116},[1079,8953,8954],{"class":1137}," migration_type",[1079,8956,1141],{"class":1116},[1079,8958,8959],{"class":1137}," batch_size",[1079,8961,1175],{"class":1577},[1079,8963,8964],{"class":1546},"1000",[1079,8966,1141],{"class":1116},[1079,8968,3723],{"class":1577},[1079,8970,3800],{"class":1137},[1079,8972,1152],{"class":1116},[1079,8974,8975,8977,8980],{"class":1081,"line":1285},[1079,8976,3807],{"class":1158},[1079,8978,8979],{"class":1162},"Run data migration.",[1079,8981,1166],{"class":1158},[1079,8983,8984,8986,8988,8991,8993],{"class":1081,"line":1293},[1079,8985,3754],{"class":2041},[1079,8987,1181],{"class":1116},[1079,8989,8990],{"class":1184},"migration_type",[1079,8992,2045],{"class":1116},[1079,8994,8995],{"class":1096}," migration_type\n",[1079,8997,8998,9000,9002,9005,9007],{"class":1081,"line":1315},[1079,8999,3754],{"class":2041},[1079,9001,1181],{"class":1116},[1079,9003,9004],{"class":1184},"batch_size",[1079,9006,2045],{"class":1116},[1079,9008,9009],{"class":1096}," batch_size\n",[1079,9011,9012],{"class":1081,"line":1325},[1079,9013,5012],{"class":1096},[1079,9015,9016,9019,9022,9024,9026,9029,9031],{"class":1081,"line":1352},[1079,9017,9018],{"class":1092},"        if",[1079,9020,9021],{"class":1096}," migration_type ",[1079,9023,7734],{"class":1577},[1079,9025,1225],{"class":1224},[1079,9027,9028],{"class":1228},"user_profiles",[1079,9030,1232],{"class":1224},[1079,9032,3572],{"class":1116},[1079,9034,9035,9038,9040,9042,9045],{"class":1081,"line":1652},[1079,9036,9037],{"class":1092},"            return",[1079,9039,6726],{"class":2041},[1079,9041,1181],{"class":1116},[1079,9043,9044],{"class":1190},"migrate_user_profiles",[1079,9046,1852],{"class":1116},[1079,9048,9049,9052,9054,9056,9058,9061,9063],{"class":1081,"line":1657},[1079,9050,9051],{"class":1092},"        elif",[1079,9053,9021],{"class":1096},[1079,9055,7734],{"class":1577},[1079,9057,1225],{"class":1224},[1079,9059,9060],{"class":1228},"post_categories",[1079,9062,1232],{"class":1224},[1079,9064,3572],{"class":1116},[1079,9066,9067,9069,9071,9073,9076],{"class":1081,"line":1672},[1079,9068,9037],{"class":1092},[1079,9070,6726],{"class":2041},[1079,9072,1181],{"class":1116},[1079,9074,9075],{"class":1190},"migrate_post_categories",[1079,9077,1852],{"class":1116},[1079,9079,9080,9083],{"class":1081,"line":1682},[1079,9081,9082],{"class":1092},"        else",[1079,9084,3572],{"class":1116},[1079,9086,9087,9090,9093,9095,9097,9100,9102,9104,9106,9108],{"class":1081,"line":1688},[1079,9088,9089],{"class":1092},"            raise",[1079,9091,9092],{"class":3733}," ValueError",[1079,9094,1134],{"class":1116},[1079,9096,1488],{"class":1127},[1079,9098,9099],{"class":1228},"\"Unknown migration type: ",[1079,9101,1495],{"class":1494},[1079,9103,8990],{"class":1190},[1079,9105,1501],{"class":1494},[1079,9107,1594],{"class":1228},[1079,9109,1204],{"class":1116},[1079,9111,9112],{"class":1081,"line":1720},[1079,9113,1511],{"class":1096},[1079,9115,9116,9118,9121,9123,9125],{"class":1081,"line":1725},[1079,9117,3709],{"class":1127},[1079,9119,9120],{"class":1120}," migrate_user_profiles",[1079,9122,1134],{"class":1116},[1079,9124,3718],{"class":3717},[1079,9126,1152],{"class":1116},[1079,9128,9129,9131,9134],{"class":1081,"line":1736},[1079,9130,3807],{"class":1158},[1079,9132,9133],{"class":1162},"Migrate user profiles.",[1079,9135,1166],{"class":1158},[1079,9137,9138,9141,9143,9145,9147,9149,9151,9154,9156,9159,9161,9163],{"class":1081,"line":1760},[1079,9139,9140],{"class":1096},"        users_without_profiles ",[1079,9142,1175],{"class":1116},[1079,9144,1178],{"class":1096},[1079,9146,1181],{"class":1116},[1079,9148,1185],{"class":1184},[1079,9150,1181],{"class":1116},[1079,9152,9153],{"class":1190},"filter",[1079,9155,1134],{"class":1116},[1079,9157,9158],{"class":1196},"userprofile__isnull",[1079,9160,1175],{"class":1116},[1079,9162,3476],{"class":1957},[1079,9164,1204],{"class":1116},[1079,9166,9167,9170,9172,9175,9177,9180],{"class":1081,"line":1781},[1079,9168,9169],{"class":1096},"        total_users ",[1079,9171,1175],{"class":1116},[1079,9173,9174],{"class":1096}," users_without_profiles",[1079,9176,1181],{"class":1116},[1079,9178,9179],{"class":1190},"count",[1079,9181,1852],{"class":1116},[1079,9183,9184],{"class":1081,"line":1801},[1079,9185,5012],{"class":1096},[1079,9187,9188,9191,9193],{"class":1081,"line":1807},[1079,9189,9190],{"class":1096},"        migrated_count ",[1079,9192,1175],{"class":1116},[1079,9194,5804],{"class":1546},[1079,9196,9197],{"class":1081,"line":1812},[1079,9198,5012],{"class":1096},[1079,9200,9201,9203,9205,9207,9209,9211,9213,9215,9218,9220,9222,9224,9226],{"class":1081,"line":1831},[1079,9202,5332],{"class":1092},[1079,9204,1519],{"class":1096},[1079,9206,1522],{"class":1092},[1079,9208,1525],{"class":1482},[1079,9210,1134],{"class":1116},[1079,9212,3440],{"class":1546},[1079,9214,1141],{"class":1116},[1079,9216,9217],{"class":1190}," total_users",[1079,9219,1141],{"class":1116},[1079,9221,6726],{"class":2041},[1079,9223,1181],{"class":1116},[1079,9225,9004],{"class":1184},[1079,9227,1152],{"class":1116},[1079,9229,9230,9233,9235,9237,9239,9241,9243,9246,9248,9250,9252,9254],{"class":1081,"line":1841},[1079,9231,9232],{"class":1096},"            batch ",[1079,9234,1175],{"class":1116},[1079,9236,9174],{"class":1096},[1079,9238,7940],{"class":1116},[1079,9240,1574],{"class":1096},[1079,9242,1747],{"class":1116},[1079,9244,9245],{"class":1096},"i ",[1079,9247,1578],{"class":1577},[1079,9249,6726],{"class":2041},[1079,9251,1181],{"class":1116},[1079,9253,9004],{"class":1184},[1079,9255,4399],{"class":1116},[1079,9257,9258],{"class":1081,"line":1855},[1079,9259,6945],{"class":1096},[1079,9261,9262,9265,9268,9270,9273],{"class":1081,"line":1876},[1079,9263,9264],{"class":1092},"            with",[1079,9266,9267],{"class":1096}," transaction",[1079,9269,1181],{"class":1116},[1079,9271,9272],{"class":1190},"atomic",[1079,9274,5352],{"class":1116},[1079,9276,9277,9280,9282],{"class":1081,"line":1881},[1079,9278,9279],{"class":1096},"                profiles_to_create ",[1079,9281,1175],{"class":1116},[1079,9283,6960],{"class":1116},[1079,9285,9286],{"class":1081,"line":1890},[1079,9287,9288],{"class":1096},"                \n",[1079,9290,9291,9294,9297,9299,9302],{"class":1081,"line":1905},[1079,9292,9293],{"class":1092},"                for",[1079,9295,9296],{"class":1096}," user ",[1079,9298,1522],{"class":1092},[1079,9300,9301],{"class":1096}," batch",[1079,9303,3572],{"class":1116},[1079,9305,9306,9309,9311,9313],{"class":1081,"line":1924},[1079,9307,9308],{"class":1096},"                    profiles_to_create",[1079,9310,1181],{"class":1116},[1079,9312,7068],{"class":1190},[1079,9314,3495],{"class":1116},[1079,9316,9317,9320],{"class":1081,"line":1963},[1079,9318,9319],{"class":1190},"                        UserProfile",[1079,9321,3495],{"class":1116},[1079,9323,9324,9327,9329,9331],{"class":1081,"line":2007},[1079,9325,9326],{"class":1196},"                            user",[1079,9328,1175],{"class":1116},[1079,9330,1240],{"class":1190},[1079,9332,1757],{"class":1116},[1079,9334,9335,9338,9340,9343],{"class":1081,"line":2421},[1079,9336,9337],{"class":1196},"                            bio",[1079,9339,1175],{"class":1116},[1079,9341,9342],{"class":1224},"''",[1079,9344,1757],{"class":1116},[1079,9346,9347,9350,9352,9354,9356],{"class":1081,"line":2434},[1079,9348,9349],{"class":1196},"                            created_at",[1079,9351,1175],{"class":1116},[1079,9353,1240],{"class":1190},[1079,9355,1181],{"class":1116},[1079,9357,9358],{"class":1184},"date_joined\n",[1079,9360,9361],{"class":1081,"line":2453},[1079,9362,9363],{"class":1116},"                        )\n",[1079,9365,9366],{"class":1081,"line":2459},[1079,9367,9368],{"class":1116},"                    )\n",[1079,9370,9371],{"class":1081,"line":2473},[1079,9372,9288],{"class":1096},[1079,9374,9375,9378,9380,9382,9384,9387,9389,9392],{"class":1081,"line":2492},[1079,9376,9377],{"class":1096},"                UserProfile",[1079,9379,1181],{"class":1116},[1079,9381,1185],{"class":1184},[1079,9383,1181],{"class":1116},[1079,9385,9386],{"class":1190},"bulk_create",[1079,9388,1134],{"class":1116},[1079,9390,9391],{"class":1190},"profiles_to_create",[1079,9393,1204],{"class":1116},[1079,9395,9396,9399,9401,9403,9405,9407],{"class":1081,"line":2505},[1079,9397,9398],{"class":1096},"                migrated_count ",[1079,9400,5846],{"class":1116},[1079,9402,5904],{"class":1482},[1079,9404,1134],{"class":1116},[1079,9406,9391],{"class":1190},[1079,9408,1204],{"class":1116},[1079,9410,9411],{"class":1081,"line":2518},[1079,9412,6945],{"class":1096},[1079,9414,9415],{"class":1081,"line":2538},[1079,9416,9417],{"class":1085},"            # Update progress\n",[1079,9419,9420,9422,9424,9426],{"class":1081,"line":2553},[1079,9421,7575],{"class":2041},[1079,9423,1181],{"class":1116},[1079,9425,7580],{"class":1190},[1079,9427,3495],{"class":1116},[1079,9429,9430,9432,9434,9436,9438,9440],{"class":1081,"line":2569},[1079,9431,7588],{"class":1196},[1079,9433,1175],{"class":1116},[1079,9435,1232],{"class":1224},[1079,9437,7595],{"class":1228},[1079,9439,1232],{"class":1224},[1079,9441,1757],{"class":1116},[1079,9443,9444,9446],{"class":1081,"line":2575},[1079,9445,7605],{"class":1196},[1079,9447,7608],{"class":1116},[1079,9449,9450,9452,9454,9456,9458,9461],{"class":1081,"line":2580},[1079,9451,7614],{"class":1224},[1079,9453,7617],{"class":1228},[1079,9455,1232],{"class":1224},[1079,9457,1747],{"class":1116},[1079,9459,9460],{"class":1190}," migrated_count",[1079,9462,1757],{"class":1116},[1079,9464,9465,9467,9469,9471,9473,9475],{"class":1081,"line":2585},[1079,9466,7614],{"class":1224},[1079,9468,7509],{"class":1228},[1079,9470,1232],{"class":1224},[1079,9472,1747],{"class":1116},[1079,9474,9217],{"class":1190},[1079,9476,1757],{"class":1116},[1079,9478,9479,9481,9483,9485,9487,9489,9492,9494,9497,9499,9501,9503,9505,9507],{"class":1081,"line":2599},[1079,9480,7614],{"class":1224},[1079,9482,1765],{"class":1228},[1079,9484,1232],{"class":1224},[1079,9486,1747],{"class":1116},[1079,9488,1610],{"class":1127},[1079,9490,9491],{"class":1228},"'Migrated ",[1079,9493,1495],{"class":1494},[1079,9495,9496],{"class":1190},"migrated_count",[1079,9498,1501],{"class":1494},[1079,9500,1585],{"class":1228},[1079,9502,1495],{"class":1494},[1079,9504,7389],{"class":1190},[1079,9506,1501],{"class":1494},[1079,9508,9509],{"class":1228}," profiles'\n",[1079,9511,9512],{"class":1081,"line":2618},[1079,9513,7679],{"class":1116},[1079,9515,9516],{"class":1081,"line":2631},[1079,9517,7685],{"class":1116},[1079,9519,9520],{"class":1081,"line":2651},[1079,9521,5012],{"class":1096},[1079,9523,9524,9526],{"class":1081,"line":2656},[1079,9525,3817],{"class":1092},[1079,9527,2048],{"class":1116},[1079,9529,9530,9532,9534,9536,9538,9540,9542,9544],{"class":1081,"line":2661},[1079,9531,2100],{"class":1224},[1079,9533,8990],{"class":1228},[1079,9535,1232],{"class":1224},[1079,9537,1747],{"class":1116},[1079,9539,1225],{"class":1224},[1079,9541,9028],{"class":1228},[1079,9543,1232],{"class":1224},[1079,9545,1757],{"class":1116},[1079,9547,9548,9550,9553,9555,9557,9559],{"class":1081,"line":2666},[1079,9549,2100],{"class":1224},[1079,9551,9552],{"class":1228},"total_migrated",[1079,9554,1232],{"class":1224},[1079,9556,1747],{"class":1116},[1079,9558,9460],{"class":1096},[1079,9560,1757],{"class":1116},[1079,9562,9563,9565,9567,9569,9571,9573,9575],{"class":1081,"line":2671},[1079,9564,2100],{"class":1224},[1079,9566,9004],{"class":1228},[1079,9568,1232],{"class":1224},[1079,9570,1747],{"class":1116},[1079,9572,6726],{"class":2041},[1079,9574,1181],{"class":1116},[1079,9576,9577],{"class":1184},"batch_size\n",[1079,9579,9580],{"class":1081,"line":2677},[1079,9581,2140],{"class":1116},[1079,9583,9584],{"class":1081,"line":2687},[1079,9585,1511],{"class":1096},[1079,9587,9588,9590,9593,9595,9597],{"class":1081,"line":2720},[1079,9589,3709],{"class":1127},[1079,9591,9592],{"class":1120}," migrate_post_categories",[1079,9594,1134],{"class":1116},[1079,9596,3718],{"class":3717},[1079,9598,1152],{"class":1116},[1079,9600,9601,9603,9606],{"class":1081,"line":2750},[1079,9602,3807],{"class":1158},[1079,9604,9605],{"class":1162},"Migrate post categories.",[1079,9607,1166],{"class":1158},[1079,9609,9610],{"class":1081,"line":2780},[1079,9611,9612],{"class":1085},"        # Implementation for post category migration\n",[1079,9614,9615],{"class":1081,"line":2785},[1079,9616,9617],{"class":1092},"        pass\n",[1079,9619,9620],{"class":1081,"line":2790},[1079,9621,1511],{"class":1096},[1079,9623,9624,9626,9629,9631,9633,9635,9637,9639,9641,9643,9646,9648,9650,9652,9655],{"class":1081,"line":2796},[1079,9625,3709],{"class":1127},[1079,9627,9628],{"class":1120}," on_failure",[1079,9630,1134],{"class":1116},[1079,9632,3718],{"class":3717},[1079,9634,1141],{"class":1116},[1079,9636,6667],{"class":1137},[1079,9638,1141],{"class":1116},[1079,9640,1826],{"class":1137},[1079,9642,1141],{"class":1116},[1079,9644,9645],{"class":1137}," args",[1079,9647,1141],{"class":1116},[1079,9649,7873],{"class":1137},[1079,9651,1141],{"class":1116},[1079,9653,9654],{"class":1137}," einfo",[1079,9656,1152],{"class":1116},[1079,9658,9659,9661,9664],{"class":1081,"line":2806},[1079,9660,3807],{"class":1158},[1079,9662,9663],{"class":1162},"Handle task failure.",[1079,9665,1166],{"class":1158},[1079,9667,9668,9670,9672,9674,9676,9678,9681,9683,9685,9687,9689],{"class":1081,"line":2819},[1079,9669,6539],{"class":1096},[1079,9671,1181],{"class":1116},[1079,9673,6611],{"class":1190},[1079,9675,1134],{"class":1116},[1079,9677,1488],{"class":1127},[1079,9679,9680],{"class":1228},"\"Data migration failed: ",[1079,9682,1495],{"class":1494},[1079,9684,6689],{"class":1190},[1079,9686,1501],{"class":1494},[1079,9688,1594],{"class":1228},[1079,9690,1204],{"class":1116},[1079,9692,9693],{"class":1081,"line":2836},[1079,9694,5012],{"class":1096},[1079,9696,9697],{"class":1081,"line":2853},[1079,9698,9699],{"class":1085},"        # Send failure notification\n",[1079,9701,9702,9704],{"class":1081,"line":2873},[1079,9703,5072],{"class":1190},[1079,9705,3495],{"class":1116},[1079,9707,9708,9710,9712,9714,9717,9719],{"class":1081,"line":2878},[1079,9709,5079],{"class":1196},[1079,9711,1175],{"class":1116},[1079,9713,1232],{"class":1224},[1079,9715,9716],{"class":1228},"Data Migration Failed",[1079,9718,1232],{"class":1224},[1079,9720,1757],{"class":1116},[1079,9722,9723,9725,9727,9729,9732,9734,9736,9738,9740,9742,9745,9747,9749,9751,9753],{"class":1081,"line":2891},[1079,9724,5090],{"class":1196},[1079,9726,1175],{"class":1116},[1079,9728,1488],{"class":1127},[1079,9730,9731],{"class":1228},"'Migration ",[1079,9733,1495],{"class":1494},[1079,9735,3718],{"class":2041},[1079,9737,1181],{"class":1116},[1079,9739,8990],{"class":1184},[1079,9741,1501],{"class":1494},[1079,9743,9744],{"class":1228}," failed: ",[1079,9746,1495],{"class":1494},[1079,9748,6689],{"class":1190},[1079,9750,1501],{"class":1494},[1079,9752,1232],{"class":1228},[1079,9754,1757],{"class":1116},[1079,9756,9757,9759,9761,9763,9766,9768],{"class":1081,"line":2907},[1079,9758,5101],{"class":1196},[1079,9760,1175],{"class":1116},[1079,9762,1232],{"class":1224},[1079,9764,9765],{"class":1228},"admin@example.com",[1079,9767,1232],{"class":1224},[1079,9769,1757],{"class":1116},[1079,9771,9772,9774,9776,9778,9780,9782],{"class":1081,"line":2923},[1079,9773,5117],{"class":1196},[1079,9775,3614],{"class":1116},[1079,9777,1232],{"class":1224},[1079,9779,9765],{"class":1228},[1079,9781,1232],{"class":1224},[1079,9783,4399],{"class":1116},[1079,9785,9786],{"class":1081,"line":2942},[1079,9787,3936],{"class":1116},[1079,9789,9790],{"class":1081,"line":2947},[1079,9791,1511],{"class":1096},[1079,9793,9794,9796,9799,9801,9803,9805,9808,9810,9812,9814,9816,9818,9820],{"class":1081,"line":2952},[1079,9795,3709],{"class":1127},[1079,9797,9798],{"class":1120}," on_success",[1079,9800,1134],{"class":1116},[1079,9802,3718],{"class":3717},[1079,9804,1141],{"class":1116},[1079,9806,9807],{"class":1137}," retval",[1079,9809,1141],{"class":1116},[1079,9811,1826],{"class":1137},[1079,9813,1141],{"class":1116},[1079,9815,9645],{"class":1137},[1079,9817,1141],{"class":1116},[1079,9819,7873],{"class":1137},[1079,9821,1152],{"class":1116},[1079,9823,9824,9826,9829],{"class":1081,"line":2957},[1079,9825,3807],{"class":1158},[1079,9827,9828],{"class":1162},"Handle task success.",[1079,9830,1166],{"class":1158},[1079,9832,9833,9835,9837,9839,9841,9843,9846,9848,9851,9853,9855],{"class":1081,"line":2963},[1079,9834,6539],{"class":1096},[1079,9836,1181],{"class":1116},[1079,9838,6544],{"class":1190},[1079,9840,1134],{"class":1116},[1079,9842,1488],{"class":1127},[1079,9844,9845],{"class":1228},"\"Data migration completed: ",[1079,9847,1495],{"class":1494},[1079,9849,9850],{"class":1190},"retval",[1079,9852,1501],{"class":1494},[1079,9854,1594],{"class":1228},[1079,9856,1204],{"class":1116},[1079,9858,9859],{"class":1081,"line":2981},[1079,9860,5012],{"class":1096},[1079,9862,9863],{"class":1081,"line":2986},[1079,9864,9865],{"class":1085},"        # Send success notification\n",[1079,9867,9868,9870],{"class":1081,"line":2992},[1079,9869,5072],{"class":1190},[1079,9871,3495],{"class":1116},[1079,9873,9874,9876,9878,9880,9883,9885],{"class":1081,"line":3006},[1079,9875,5079],{"class":1196},[1079,9877,1175],{"class":1116},[1079,9879,1232],{"class":1224},[1079,9881,9882],{"class":1228},"Data Migration Completed",[1079,9884,1232],{"class":1224},[1079,9886,1757],{"class":1116},[1079,9888,9889,9891,9893,9895,9898,9900,9902,9904,9906],{"class":1081,"line":3011},[1079,9890,5090],{"class":1196},[1079,9892,1175],{"class":1116},[1079,9894,1488],{"class":1127},[1079,9896,9897],{"class":1228},"'Migration completed successfully: ",[1079,9899,1495],{"class":1494},[1079,9901,9850],{"class":1190},[1079,9903,1501],{"class":1494},[1079,9905,1232],{"class":1228},[1079,9907,1757],{"class":1116},[1079,9909,9910,9912,9914,9916,9918,9920],{"class":1081,"line":3017},[1079,9911,5101],{"class":1196},[1079,9913,1175],{"class":1116},[1079,9915,1232],{"class":1224},[1079,9917,9765],{"class":1228},[1079,9919,1232],{"class":1224},[1079,9921,1757],{"class":1116},[1079,9923,9924,9926,9928,9930,9932,9934],{"class":1081,"line":3031},[1079,9925,5117],{"class":1196},[1079,9927,3614],{"class":1116},[1079,9929,1232],{"class":1224},[1079,9931,9765],{"class":1228},[1079,9933,1232],{"class":1224},[1079,9935,4399],{"class":1116},[1079,9937,9938],{"class":1081,"line":3042},[1079,9939,3936],{"class":1116},[1079,9941,9942],{"class":1081,"line":3047},[1079,9943,1110],{"emptyLinePlaceholder":1109},[1079,9945,9946],{"class":1081,"line":3053},[1079,9947,9948],{"class":1085},"# Register class-based task\n",[1079,9950,9951,9954,9956,9958],{"class":1081,"line":3064},[1079,9952,9953],{"class":1096},"data_migration_task ",[1079,9955,1175],{"class":1116},[1079,9957,8878],{"class":1190},[1079,9959,1852],{"class":1116},[1079,9961,9962],{"class":1081,"line":3074},[1079,9963,1110],{"emptyLinePlaceholder":1109},[1079,9965,9966,9968,9971,9973,9975],{"class":1081,"line":3079},[1079,9967,3176],{"class":1127},[1079,9969,9970],{"class":3394}," FileProcessingTask",[1079,9972,1134],{"class":1116},[1079,9974,8883],{"class":3400},[1079,9976,1152],{"class":1116},[1079,9978,9979,9981,9984],{"class":1081,"line":3089},[1079,9980,1159],{"class":1158},[1079,9982,9983],{"class":1162},"Class-based task for file processing.",[1079,9985,1166],{"class":1158},[1079,9987,9988],{"class":1081,"line":3105},[1079,9989,1511],{"class":1096},[1079,9991,9992,9994,9996,9998,10001],{"class":1081,"line":3122},[1079,9993,8903],{"class":1096},[1079,9995,1175],{"class":1116},[1079,9997,1225],{"class":1224},[1079,9999,10000],{"class":1228},"file_processing",[1079,10002,1798],{"class":1224},[1079,10004,10005,10008,10010],{"class":1081,"line":3136},[1079,10006,10007],{"class":1096},"    bind ",[1079,10009,1175],{"class":1116},[1079,10011,3061],{"class":1957},[1079,10013,10014,10016,10018],{"class":1081,"line":3150},[1079,10015,8917],{"class":1096},[1079,10017,1175],{"class":1116},[1079,10019,10020],{"class":1546}," 2\n",[1079,10022,10023],{"class":1081,"line":3171},[1079,10024,1511],{"class":1096},[1079,10026,10027,10029,10031,10033,10035,10037,10040,10042,10045,10047,10049,10051],{"class":1081,"line":3192},[1079,10028,3709],{"class":1127},[1079,10030,8945],{"class":1120},[1079,10032,1134],{"class":1116},[1079,10034,3718],{"class":3717},[1079,10036,1141],{"class":1116},[1079,10038,10039],{"class":1137}," file_path",[1079,10041,1141],{"class":1116},[1079,10043,10044],{"class":1137}," processing_type",[1079,10046,1141],{"class":1116},[1079,10048,3723],{"class":1577},[1079,10050,3726],{"class":1137},[1079,10052,1152],{"class":1116},[1079,10054,10055,10057,10060],{"class":1081,"line":3213},[1079,10056,3807],{"class":1158},[1079,10058,10059],{"class":1162},"Process uploaded file.",[1079,10061,1166],{"class":1158},[1079,10063,10064,10067],{"class":1081,"line":3219},[1079,10065,10066],{"class":1092},"        import",[1079,10068,10069],{"class":1096}," os\n",[1079,10071,10072,10074,10077,10080],{"class":1081,"line":3224},[1079,10073,6311],{"class":1092},[1079,10075,10076],{"class":2041}," PIL",[1079,10078,10079],{"class":1092}," import",[1079,10081,10082],{"class":1096}," Image\n",[1079,10084,10085],{"class":1081,"line":3238},[1079,10086,5012],{"class":1096},[1079,10088,10089,10091,10094,10097,10099,10102,10104,10107,10109,10112],{"class":1081,"line":3252},[1079,10090,9018],{"class":1092},[1079,10092,10093],{"class":1577}," not",[1079,10095,10096],{"class":1096}," os",[1079,10098,1181],{"class":1116},[1079,10100,10101],{"class":1184},"path",[1079,10103,1181],{"class":1116},[1079,10105,10106],{"class":1190},"exists",[1079,10108,1134],{"class":1116},[1079,10110,10111],{"class":1190},"file_path",[1079,10113,1152],{"class":1116},[1079,10115,10116,10118,10121,10123,10125,10128,10130,10132,10134,10136],{"class":1081,"line":3274},[1079,10117,9089],{"class":1092},[1079,10119,10120],{"class":3733}," FileNotFoundError",[1079,10122,1134],{"class":1116},[1079,10124,1488],{"class":1127},[1079,10126,10127],{"class":1228},"\"File not found: ",[1079,10129,1495],{"class":1494},[1079,10131,10111],{"class":1190},[1079,10133,1501],{"class":1494},[1079,10135,1594],{"class":1228},[1079,10137,1204],{"class":1116},[1079,10139,10140],{"class":1081,"line":3293},[1079,10141,5012],{"class":1096},[1079,10143,10144,10146,10149,10151,10153,10156,10158],{"class":1081,"line":3310},[1079,10145,9018],{"class":1092},[1079,10147,10148],{"class":1096}," processing_type ",[1079,10150,7734],{"class":1577},[1079,10152,1225],{"class":1224},[1079,10154,10155],{"class":1228},"image_resize",[1079,10157,1232],{"class":1224},[1079,10159,3572],{"class":1116},[1079,10161,10162,10164,10166,10168,10171,10173,10175,10177,10179,10181],{"class":1081,"line":3315},[1079,10163,9037],{"class":1092},[1079,10165,6726],{"class":2041},[1079,10167,1181],{"class":1116},[1079,10169,10170],{"class":1190},"resize_image",[1079,10172,1134],{"class":1116},[1079,10174,10111],{"class":1190},[1079,10176,1141],{"class":1116},[1079,10178,3723],{"class":1577},[1079,10180,3726],{"class":1190},[1079,10182,1204],{"class":1116},[1079,10184,10185,10187,10189,10191,10193,10196,10198],{"class":1081,"line":3320},[1079,10186,9051],{"class":1092},[1079,10188,10148],{"class":1096},[1079,10190,7734],{"class":1577},[1079,10192,1225],{"class":1224},[1079,10194,10195],{"class":1228},"image_optimize",[1079,10197,1232],{"class":1224},[1079,10199,3572],{"class":1116},[1079,10201,10202,10204,10206,10208,10211,10213,10215,10217,10219,10221],{"class":1081,"line":7490},[1079,10203,9037],{"class":1092},[1079,10205,6726],{"class":2041},[1079,10207,1181],{"class":1116},[1079,10209,10210],{"class":1190},"optimize_image",[1079,10212,1134],{"class":1116},[1079,10214,10111],{"class":1190},[1079,10216,1141],{"class":1116},[1079,10218,3723],{"class":1577},[1079,10220,3726],{"class":1190},[1079,10222,1204],{"class":1116},[1079,10224,10225,10227,10229,10231,10233,10236,10238],{"class":1081,"line":7504},[1079,10226,9051],{"class":1092},[1079,10228,10148],{"class":1096},[1079,10230,7734],{"class":1577},[1079,10232,1225],{"class":1224},[1079,10234,10235],{"class":1228},"generate_thumbnails",[1079,10237,1232],{"class":1224},[1079,10239,3572],{"class":1116},[1079,10241,10242,10244,10246,10248,10250,10252,10254,10256,10258,10260],{"class":1081,"line":7525},[1079,10243,9037],{"class":1092},[1079,10245,6726],{"class":2041},[1079,10247,1181],{"class":1116},[1079,10249,10235],{"class":1190},[1079,10251,1134],{"class":1116},[1079,10253,10111],{"class":1190},[1079,10255,1141],{"class":1116},[1079,10257,3723],{"class":1577},[1079,10259,3726],{"class":1190},[1079,10261,1204],{"class":1116},[1079,10263,10264,10266],{"class":1081,"line":7530},[1079,10265,9082],{"class":1092},[1079,10267,3572],{"class":1116},[1079,10269,10270,10272,10274,10276,10278,10281,10283,10286,10288,10290],{"class":1081,"line":7535},[1079,10271,9089],{"class":1092},[1079,10273,9092],{"class":3733},[1079,10275,1134],{"class":1116},[1079,10277,1488],{"class":1127},[1079,10279,10280],{"class":1228},"\"Unknown processing type: ",[1079,10282,1495],{"class":1494},[1079,10284,10285],{"class":1190},"processing_type",[1079,10287,1501],{"class":1494},[1079,10289,1594],{"class":1228},[1079,10291,1204],{"class":1116},[1079,10293,10294],{"class":1081,"line":7559},[1079,10295,1511],{"class":1096},[1079,10297,10298,10300,10303,10305,10307,10309,10311,10313,10316,10318,10321,10323,10325,10327],{"class":1081,"line":7566},[1079,10299,3709],{"class":1127},[1079,10301,10302],{"class":1120}," resize_image",[1079,10304,1134],{"class":1116},[1079,10306,3718],{"class":3717},[1079,10308,1141],{"class":1116},[1079,10310,10039],{"class":1137},[1079,10312,1141],{"class":1116},[1079,10314,10315],{"class":1137}," width",[1079,10317,1141],{"class":1116},[1079,10319,10320],{"class":1137}," height",[1079,10322,1141],{"class":1116},[1079,10324,3723],{"class":1577},[1079,10326,3800],{"class":1137},[1079,10328,1152],{"class":1116},[1079,10330,10331,10333,10336],{"class":1081,"line":7572},[1079,10332,3807],{"class":1158},[1079,10334,10335],{"class":1162},"Resize image to specified dimensions.",[1079,10337,1166],{"class":1158},[1079,10339,10340,10342],{"class":1081,"line":7585},[1079,10341,6911],{"class":1092},[1079,10343,3572],{"class":1116},[1079,10345,10346,10348,10351,10353,10356,10358,10360,10362,10364,10367],{"class":1081,"line":7602},[1079,10347,9264],{"class":1092},[1079,10349,10350],{"class":1096}," Image",[1079,10352,1181],{"class":1116},[1079,10354,10355],{"class":1190},"open",[1079,10357,1134],{"class":1116},[1079,10359,10111],{"class":1190},[1079,10361,1999],{"class":1116},[1079,10363,5212],{"class":1092},[1079,10365,10366],{"class":1096}," img",[1079,10368,3572],{"class":1116},[1079,10370,10371],{"class":1081,"line":7611},[1079,10372,10373],{"class":1085},"                # Resize image\n",[1079,10375,10376,10379,10381,10383,10385,10388,10391,10394,10396,10398,10401,10403,10405,10408,10410,10413],{"class":1081,"line":7632},[1079,10377,10378],{"class":1096},"                resized_img ",[1079,10380,1175],{"class":1116},[1079,10382,10366],{"class":1096},[1079,10384,1181],{"class":1116},[1079,10386,10387],{"class":1190},"resize",[1079,10389,10390],{"class":1116},"((",[1079,10392,10393],{"class":1190},"width",[1079,10395,1141],{"class":1116},[1079,10397,10320],{"class":1190},[1079,10399,10400],{"class":1116},"),",[1079,10402,10350],{"class":1190},[1079,10404,1181],{"class":1116},[1079,10406,10407],{"class":1184},"Resampling",[1079,10409,1181],{"class":1116},[1079,10411,10412],{"class":3524},"LANCZOS",[1079,10414,1204],{"class":1116},[1079,10416,10417],{"class":1081,"line":7651},[1079,10418,9288],{"class":1096},[1079,10420,10421],{"class":1081,"line":7676},[1079,10422,10423],{"class":1085},"                # Save resized image\n",[1079,10425,10426,10429,10431,10433,10435,10438,10440,10442,10444,10446,10448,10450,10453,10455,10457,10459,10462,10464,10467,10469,10472],{"class":1081,"line":7682},[1079,10427,10428],{"class":1096},"                output_path ",[1079,10430,1175],{"class":1116},[1079,10432,10039],{"class":1096},[1079,10434,1181],{"class":1116},[1079,10436,10437],{"class":1190},"replace",[1079,10439,1134],{"class":1116},[1079,10441,1232],{"class":1224},[1079,10443,1181],{"class":1228},[1079,10445,1232],{"class":1224},[1079,10447,1141],{"class":1116},[1079,10449,1610],{"class":1127},[1079,10451,10452],{"class":1228},"'_resized_",[1079,10454,1495],{"class":1494},[1079,10456,10393],{"class":1190},[1079,10458,1501],{"class":1494},[1079,10460,10461],{"class":1228},"x",[1079,10463,1495],{"class":1494},[1079,10465,10466],{"class":1190},"height",[1079,10468,1501],{"class":1494},[1079,10470,10471],{"class":1228},".'",[1079,10473,1204],{"class":1116},[1079,10475,10476,10479,10481,10483,10485,10488,10490,10493,10495,10497,10499,10502,10504,10507],{"class":1081,"line":7688},[1079,10477,10478],{"class":1096},"                resized_img",[1079,10480,1181],{"class":1116},[1079,10482,5403],{"class":1190},[1079,10484,1134],{"class":1116},[1079,10486,10487],{"class":1190},"output_path",[1079,10489,1141],{"class":1116},[1079,10491,10492],{"class":1196}," optimize",[1079,10494,1175],{"class":1116},[1079,10496,3476],{"class":1957},[1079,10498,1141],{"class":1116},[1079,10500,10501],{"class":1196}," quality",[1079,10503,1175],{"class":1116},[1079,10505,10506],{"class":1546},"85",[1079,10508,1204],{"class":1116},[1079,10510,10511],{"class":1081,"line":7693},[1079,10512,9288],{"class":1096},[1079,10514,10515,10518],{"class":1081,"line":7721},[1079,10516,10517],{"class":1092},"                return",[1079,10519,2048],{"class":1116},[1079,10521,10522,10524,10527,10529,10531,10533],{"class":1081,"line":7726},[1079,10523,7614],{"class":1224},[1079,10525,10526],{"class":1228},"original_path",[1079,10528,1232],{"class":1224},[1079,10530,1747],{"class":1116},[1079,10532,10039],{"class":1096},[1079,10534,1757],{"class":1116},[1079,10536,10537,10539,10542,10544,10546,10549],{"class":1081,"line":7746},[1079,10538,7614],{"class":1224},[1079,10540,10541],{"class":1228},"resized_path",[1079,10543,1232],{"class":1224},[1079,10545,1747],{"class":1116},[1079,10547,10548],{"class":1096}," output_path",[1079,10550,1757],{"class":1116},[1079,10552,10553,10555,10558,10560,10562,10564,10566,10569],{"class":1081,"line":7761},[1079,10554,7614],{"class":1224},[1079,10556,10557],{"class":1228},"original_size",[1079,10559,1232],{"class":1224},[1079,10561,1747],{"class":1116},[1079,10563,10366],{"class":1096},[1079,10565,1181],{"class":1116},[1079,10567,10568],{"class":1184},"size",[1079,10570,1757],{"class":1116},[1079,10572,10573,10575,10578,10580,10582,10584,10586,10588,10590],{"class":1081,"line":7782},[1079,10574,7614],{"class":1224},[1079,10576,10577],{"class":1228},"new_size",[1079,10579,1232],{"class":1224},[1079,10581,1747],{"class":1116},[1079,10583,6719],{"class":1116},[1079,10585,10393],{"class":1096},[1079,10587,1141],{"class":1116},[1079,10589,10320],{"class":1096},[1079,10591,1204],{"class":1116},[1079,10593,10594],{"class":1081,"line":7801},[1079,10595,7679],{"class":1116},[1079,10597,10598],{"class":1081,"line":7815},[1079,10599,5012],{"class":1096},[1079,10601,10602,10604,10606,10608,10610],{"class":1081,"line":7833},[1079,10603,7239],{"class":1092},[1079,10605,5209],{"class":3733},[1079,10607,5212],{"class":1092},[1079,10609,5215],{"class":1096},[1079,10611,3572],{"class":1116},[1079,10613,10614,10616,10618,10620,10622,10625,10627,10629,10631,10633,10635,10637,10639],{"class":1081,"line":7847},[1079,10615,9089],{"class":1092},[1079,10617,5209],{"class":3733},[1079,10619,1134],{"class":1116},[1079,10621,1488],{"class":1127},[1079,10623,10624],{"class":1228},"\"Image resize failed: ",[1079,10626,1495],{"class":1494},[1079,10628,5236],{"class":3733},[1079,10630,1134],{"class":1116},[1079,10632,5241],{"class":1190},[1079,10634,1999],{"class":1116},[1079,10636,1501],{"class":1494},[1079,10638,1594],{"class":1228},[1079,10640,1204],{"class":1116},[1079,10642,10643],{"class":1081,"line":7865},[1079,10644,1511],{"class":1096},[1079,10646,10647,10649,10652,10654,10656,10658,10660,10662,10664,10666,10668,10670,10672,10674],{"class":1081,"line":7891},[1079,10648,3709],{"class":1127},[1079,10650,10651],{"class":1120}," optimize_image",[1079,10653,1134],{"class":1116},[1079,10655,3718],{"class":3717},[1079,10657,1141],{"class":1116},[1079,10659,10039],{"class":1137},[1079,10661,1141],{"class":1116},[1079,10663,10501],{"class":1137},[1079,10665,1175],{"class":1577},[1079,10667,10506],{"class":1546},[1079,10669,1141],{"class":1116},[1079,10671,3723],{"class":1577},[1079,10673,3800],{"class":1137},[1079,10675,1152],{"class":1116},[1079,10677,10678,10680,10683],{"class":1081,"line":7902},[1079,10679,3807],{"class":1158},[1079,10681,10682],{"class":1162},"Optimize image for web.",[1079,10684,1166],{"class":1158},[1079,10686,10687,10689],{"class":1081,"line":7917},[1079,10688,6911],{"class":1092},[1079,10690,3572],{"class":1116},[1079,10692,10693,10695,10697,10699,10701,10703,10705,10707,10709,10711],{"class":1081,"line":7922},[1079,10694,9264],{"class":1092},[1079,10696,10350],{"class":1096},[1079,10698,1181],{"class":1116},[1079,10700,10355],{"class":1190},[1079,10702,1134],{"class":1116},[1079,10704,10111],{"class":1190},[1079,10706,1999],{"class":1116},[1079,10708,5212],{"class":1092},[1079,10710,10366],{"class":1096},[1079,10712,3572],{"class":1116},[1079,10714,10715],{"class":1081,"line":7934},[1079,10716,10717],{"class":1085},"                # Convert to RGB if necessary\n",[1079,10719,10720,10722,10724,10726,10729,10732,10734,10736,10739,10741,10743,10745,10748,10750],{"class":1081,"line":7960},[1079,10721,7894],{"class":1092},[1079,10723,10366],{"class":1096},[1079,10725,1181],{"class":1116},[1079,10727,10728],{"class":1184},"mode",[1079,10730,10731],{"class":1577}," in",[1079,10733,6719],{"class":1116},[1079,10735,1232],{"class":1224},[1079,10737,10738],{"class":1228},"RGBA",[1079,10740,1232],{"class":1224},[1079,10742,1141],{"class":1116},[1079,10744,1225],{"class":1224},[1079,10746,10747],{"class":1228},"P",[1079,10749,1232],{"class":1224},[1079,10751,1152],{"class":1116},[1079,10753,10754,10757,10759,10761,10763,10766,10768,10770,10773,10775],{"class":1081,"line":7965},[1079,10755,10756],{"class":1096},"                    img ",[1079,10758,1175],{"class":1116},[1079,10760,10366],{"class":1096},[1079,10762,1181],{"class":1116},[1079,10764,10765],{"class":1190},"convert",[1079,10767,1134],{"class":1116},[1079,10769,1232],{"class":1224},[1079,10771,10772],{"class":1228},"RGB",[1079,10774,1232],{"class":1224},[1079,10776,1204],{"class":1116},[1079,10778,10779],{"class":1081,"line":7978},[1079,10780,9288],{"class":1096},[1079,10782,10783],{"class":1081,"line":7997},[1079,10784,10785],{"class":1085},"                # Save optimized image\n",[1079,10787,10788,10790,10792,10794,10796,10798,10800,10802,10804,10806,10808,10810,10813,10815],{"class":1081,"line":8013},[1079,10789,10428],{"class":1096},[1079,10791,1175],{"class":1116},[1079,10793,10039],{"class":1096},[1079,10795,1181],{"class":1116},[1079,10797,10437],{"class":1190},[1079,10799,1134],{"class":1116},[1079,10801,1232],{"class":1224},[1079,10803,1181],{"class":1228},[1079,10805,1232],{"class":1224},[1079,10807,1141],{"class":1116},[1079,10809,1225],{"class":1224},[1079,10811,10812],{"class":1228},"_optimized.",[1079,10814,1232],{"class":1224},[1079,10816,1204],{"class":1116},[1079,10818,10819,10822,10824,10826,10828,10830,10832,10834,10836,10838,10840,10842,10844,10847],{"class":1081,"line":8031},[1079,10820,10821],{"class":1096},"                img",[1079,10823,1181],{"class":1116},[1079,10825,5403],{"class":1190},[1079,10827,1134],{"class":1116},[1079,10829,10487],{"class":1190},[1079,10831,1141],{"class":1116},[1079,10833,10492],{"class":1196},[1079,10835,1175],{"class":1116},[1079,10837,3476],{"class":1957},[1079,10839,1141],{"class":1116},[1079,10841,10501],{"class":1196},[1079,10843,1175],{"class":1116},[1079,10845,10846],{"class":1190},"quality",[1079,10848,1204],{"class":1116},[1079,10850,10851],{"class":1081,"line":8037},[1079,10852,9288],{"class":1096},[1079,10854,10855],{"class":1081,"line":8042},[1079,10856,10857],{"class":1085},"                # Get file sizes\n",[1079,10859,10860,10863,10865,10867,10869,10871,10873,10876,10878,10880],{"class":1081,"line":8055},[1079,10861,10862],{"class":1096},"                original_size ",[1079,10864,1175],{"class":1116},[1079,10866,10096],{"class":1096},[1079,10868,1181],{"class":1116},[1079,10870,10101],{"class":1184},[1079,10872,1181],{"class":1116},[1079,10874,10875],{"class":1190},"getsize",[1079,10877,1134],{"class":1116},[1079,10879,10111],{"class":1190},[1079,10881,1204],{"class":1116},[1079,10883,10884,10887,10889,10891,10893,10895,10897,10899,10901,10903],{"class":1081,"line":8074},[1079,10885,10886],{"class":1096},"                optimized_size ",[1079,10888,1175],{"class":1116},[1079,10890,10096],{"class":1096},[1079,10892,1181],{"class":1116},[1079,10894,10101],{"class":1184},[1079,10896,1181],{"class":1116},[1079,10898,10875],{"class":1190},[1079,10900,1134],{"class":1116},[1079,10902,10487],{"class":1190},[1079,10904,1204],{"class":1116},[1079,10906,10907],{"class":1081,"line":8089},[1079,10908,9288],{"class":1096},[1079,10910,10911,10913],{"class":1081,"line":8109},[1079,10912,10517],{"class":1092},[1079,10914,2048],{"class":1116},[1079,10916,10917,10919,10921,10923,10925,10927],{"class":1081,"line":8114},[1079,10918,7614],{"class":1224},[1079,10920,10526],{"class":1228},[1079,10922,1232],{"class":1224},[1079,10924,1747],{"class":1116},[1079,10926,10039],{"class":1096},[1079,10928,1757],{"class":1116},[1079,10930,10931,10933,10936,10938,10940,10942],{"class":1081,"line":8119},[1079,10932,7614],{"class":1224},[1079,10934,10935],{"class":1228},"optimized_path",[1079,10937,1232],{"class":1224},[1079,10939,1747],{"class":1116},[1079,10941,10548],{"class":1096},[1079,10943,1757],{"class":1116},[1079,10945,10946,10948,10950,10952,10954,10957],{"class":1081,"line":8127},[1079,10947,7614],{"class":1224},[1079,10949,10557],{"class":1228},[1079,10951,1232],{"class":1224},[1079,10953,1747],{"class":1116},[1079,10955,10956],{"class":1096}," original_size",[1079,10958,1757],{"class":1116},[1079,10960,10961,10963,10966,10968,10970,10973],{"class":1081,"line":8132},[1079,10962,7614],{"class":1224},[1079,10964,10965],{"class":1228},"optimized_size",[1079,10967,1232],{"class":1224},[1079,10969,1747],{"class":1116},[1079,10971,10972],{"class":1096}," optimized_size",[1079,10974,1757],{"class":1116},[1079,10976,10977,10979,10982,10984,10986,10988,10991,10994,10996,10998,11001],{"class":1081,"line":8162},[1079,10978,7614],{"class":1224},[1079,10980,10981],{"class":1228},"compression_ratio",[1079,10983,1232],{"class":1224},[1079,10985,1747],{"class":1116},[1079,10987,6719],{"class":1116},[1079,10989,10990],{"class":1096},"original_size ",[1079,10992,10993],{"class":1577},"-",[1079,10995,10972],{"class":1096},[1079,10997,1999],{"class":1116},[1079,10999,11000],{"class":1577}," /",[1079,11002,11003],{"class":1096}," original_size\n",[1079,11005,11006],{"class":1081,"line":8190},[1079,11007,7679],{"class":1116},[1079,11009,11010],{"class":1081,"line":8200},[1079,11011,5012],{"class":1096},[1079,11013,11014,11016,11018,11020,11022],{"class":1081,"line":8207},[1079,11015,7239],{"class":1092},[1079,11017,5209],{"class":3733},[1079,11019,5212],{"class":1092},[1079,11021,5215],{"class":1096},[1079,11023,3572],{"class":1116},[1079,11025,11026,11028,11030,11032,11034,11037,11039,11041,11043,11045,11047,11049,11051],{"class":1081,"line":8234},[1079,11027,9089],{"class":1092},[1079,11029,5209],{"class":3733},[1079,11031,1134],{"class":1116},[1079,11033,1488],{"class":1127},[1079,11035,11036],{"class":1228},"\"Image optimization failed: ",[1079,11038,1495],{"class":1494},[1079,11040,5236],{"class":3733},[1079,11042,1134],{"class":1116},[1079,11044,5241],{"class":1190},[1079,11046,1999],{"class":1116},[1079,11048,1501],{"class":1494},[1079,11050,1594],{"class":1228},[1079,11052,1204],{"class":1116},[1079,11054,11055],{"class":1081,"line":8239},[1079,11056,1511],{"class":1096},[1079,11058,11059,11061,11064,11066,11068,11070,11072,11074,11077,11079,11081,11083,11085,11087],{"class":1081,"line":8245},[1079,11060,3709],{"class":1127},[1079,11062,11063],{"class":1120}," generate_thumbnails",[1079,11065,1134],{"class":1116},[1079,11067,3718],{"class":3717},[1079,11069,1141],{"class":1116},[1079,11071,10039],{"class":1137},[1079,11073,1141],{"class":1116},[1079,11075,11076],{"class":1137}," sizes",[1079,11078,1175],{"class":1577},[1079,11080,5697],{"class":1957},[1079,11082,1141],{"class":1116},[1079,11084,3723],{"class":1577},[1079,11086,3800],{"class":1137},[1079,11088,1152],{"class":1116},[1079,11090,11091,11093,11096],{"class":1081,"line":8256},[1079,11092,3807],{"class":1158},[1079,11094,11095],{"class":1162},"Generate multiple thumbnail sizes.",[1079,11097,1166],{"class":1158},[1079,11099,11100,11102,11105,11108,11110],{"class":1081,"line":8272},[1079,11101,9018],{"class":1092},[1079,11103,11104],{"class":1096}," sizes ",[1079,11106,11107],{"class":1577},"is",[1079,11109,1958],{"class":1957},[1079,11111,3572],{"class":1116},[1079,11113,11114,11117,11119,11122,11125,11127,11130,11132,11134,11136,11138,11140,11142,11144,11147,11149,11151],{"class":1081,"line":8298},[1079,11115,11116],{"class":1096},"            sizes ",[1079,11118,1175],{"class":1116},[1079,11120,11121],{"class":1116}," [(",[1079,11123,11124],{"class":1546},"150",[1079,11126,1141],{"class":1116},[1079,11128,11129],{"class":1546}," 150",[1079,11131,10400],{"class":1116},[1079,11133,6719],{"class":1116},[1079,11135,6202],{"class":1546},[1079,11137,1141],{"class":1116},[1079,11139,2865],{"class":1546},[1079,11141,10400],{"class":1116},[1079,11143,6719],{"class":1116},[1079,11145,11146],{"class":1546},"600",[1079,11148,1141],{"class":1116},[1079,11150,2934],{"class":1546},[1079,11152,11153],{"class":1116},")]\n",[1079,11155,11156],{"class":1081,"line":8303},[1079,11157,5012],{"class":1096},[1079,11159,11160,11163,11165],{"class":1081,"line":8308},[1079,11161,11162],{"class":1096},"        thumbnails ",[1079,11164,1175],{"class":1116},[1079,11166,6960],{"class":1116},[1079,11168,11169],{"class":1081,"line":8323},[1079,11170,5012],{"class":1096},[1079,11172,11173,11175],{"class":1081,"line":8345},[1079,11174,6911],{"class":1092},[1079,11176,3572],{"class":1116},[1079,11178,11179,11181,11183,11185,11187,11189,11191,11193,11195,11197],{"class":1081,"line":8350},[1079,11180,9264],{"class":1092},[1079,11182,10350],{"class":1096},[1079,11184,1181],{"class":1116},[1079,11186,10355],{"class":1190},[1079,11188,1134],{"class":1116},[1079,11190,10111],{"class":1190},[1079,11192,1999],{"class":1116},[1079,11194,5212],{"class":1092},[1079,11196,10366],{"class":1096},[1079,11198,3572],{"class":1116},[1079,11200,11201,11203,11205,11207,11209,11211,11213,11215,11217,11219,11221,11223,11226],{"class":1081,"line":8356},[1079,11202,9293],{"class":1092},[1079,11204,7540],{"class":1096},[1079,11206,1141],{"class":1116},[1079,11208,6719],{"class":1116},[1079,11210,10393],{"class":1096},[1079,11212,1141],{"class":1116},[1079,11214,10320],{"class":1096},[1079,11216,1999],{"class":1116},[1079,11218,10731],{"class":1092},[1079,11220,7550],{"class":1482},[1079,11222,1134],{"class":1116},[1079,11224,11225],{"class":1190},"sizes",[1079,11227,1152],{"class":1116},[1079,11229,11230],{"class":1081,"line":8402},[1079,11231,11232],{"class":1085},"                    # Update progress\n",[1079,11234,11235,11238,11240,11242],{"class":1081,"line":8407},[1079,11236,11237],{"class":2041},"                    self",[1079,11239,1181],{"class":1116},[1079,11241,7580],{"class":1190},[1079,11243,3495],{"class":1116},[1079,11245,11246,11249,11251,11253,11255,11257],{"class":1081,"line":8430},[1079,11247,11248],{"class":1196},"                        state",[1079,11250,1175],{"class":1116},[1079,11252,1232],{"class":1224},[1079,11254,7595],{"class":1228},[1079,11256,1232],{"class":1224},[1079,11258,1757],{"class":1116},[1079,11260,11261,11264],{"class":1081,"line":8441},[1079,11262,11263],{"class":1196},"                        meta",[1079,11265,7608],{"class":1116},[1079,11267,11268,11271,11273,11275,11277,11279,11281,11283],{"class":1081,"line":8456},[1079,11269,11270],{"class":1224},"                            '",[1079,11272,7617],{"class":1228},[1079,11274,1232],{"class":1224},[1079,11276,1747],{"class":1116},[1079,11278,1519],{"class":1190},[1079,11280,1578],{"class":1577},[1079,11282,2564],{"class":1546},[1079,11284,1757],{"class":1116},[1079,11286,11287,11289,11291,11293,11295,11297,11299,11301],{"class":1081,"line":8463},[1079,11288,11270],{"class":1224},[1079,11290,7509],{"class":1228},[1079,11292,1232],{"class":1224},[1079,11294,1747],{"class":1116},[1079,11296,5904],{"class":1482},[1079,11298,1134],{"class":1116},[1079,11300,11225],{"class":1190},[1079,11302,3880],{"class":1116},[1079,11304,11305,11307,11309,11311,11313,11315,11317,11319,11321,11323,11325,11327,11329,11331],{"class":1081,"line":8482},[1079,11306,11270],{"class":1224},[1079,11308,1765],{"class":1228},[1079,11310,1232],{"class":1224},[1079,11312,1747],{"class":1116},[1079,11314,1610],{"class":1127},[1079,11316,8514],{"class":1228},[1079,11318,1495],{"class":1494},[1079,11320,10393],{"class":1190},[1079,11322,1501],{"class":1494},[1079,11324,10461],{"class":1228},[1079,11326,1495],{"class":1494},[1079,11328,10466],{"class":1190},[1079,11330,1501],{"class":1494},[1079,11332,11333],{"class":1228}," thumbnail'\n",[1079,11335,11336],{"class":1081,"line":8501},[1079,11337,11338],{"class":1116},"                        }\n",[1079,11340,11341],{"class":1081,"line":8527},[1079,11342,9368],{"class":1116},[1079,11344,11345],{"class":1081,"line":8532},[1079,11346,11347],{"class":1096},"                    \n",[1079,11349,11350],{"class":1081,"line":8537},[1079,11351,11352],{"class":1085},"                    # Create thumbnail\n",[1079,11354,11355,11358,11360,11362,11364,11367],{"class":1081,"line":8542},[1079,11356,11357],{"class":1096},"                    thumbnail ",[1079,11359,1175],{"class":1116},[1079,11361,10366],{"class":1096},[1079,11363,1181],{"class":1116},[1079,11365,11366],{"class":1190},"copy",[1079,11368,1852],{"class":1116},[1079,11370,11371,11374,11376,11379,11381,11383,11385,11387,11389,11391,11393,11395,11397,11399],{"class":1081,"line":8559},[1079,11372,11373],{"class":1096},"                    thumbnail",[1079,11375,1181],{"class":1116},[1079,11377,11378],{"class":1190},"thumbnail",[1079,11380,10390],{"class":1116},[1079,11382,10393],{"class":1190},[1079,11384,1141],{"class":1116},[1079,11386,10320],{"class":1190},[1079,11388,10400],{"class":1116},[1079,11390,10350],{"class":1190},[1079,11392,1181],{"class":1116},[1079,11394,10407],{"class":1184},[1079,11396,1181],{"class":1116},[1079,11398,10412],{"class":3524},[1079,11400,1204],{"class":1116},[1079,11402,11403],{"class":1081,"line":8564},[1079,11404,11347],{"class":1096},[1079,11406,11407],{"class":1081,"line":8570},[1079,11408,11409],{"class":1085},"                    # Save thumbnail\n",[1079,11411,11412,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11438,11440,11442,11444,11446,11448,11450,11452,11454],{"class":1081,"line":8588},[1079,11413,11414],{"class":1096},"                    output_path ",[1079,11416,1175],{"class":1116},[1079,11418,10039],{"class":1096},[1079,11420,1181],{"class":1116},[1079,11422,10437],{"class":1190},[1079,11424,1134],{"class":1116},[1079,11426,1232],{"class":1224},[1079,11428,1181],{"class":1228},[1079,11430,1232],{"class":1224},[1079,11432,1141],{"class":1116},[1079,11434,1610],{"class":1127},[1079,11436,11437],{"class":1228},"'_thumb_",[1079,11439,1495],{"class":1494},[1079,11441,10393],{"class":1190},[1079,11443,1501],{"class":1494},[1079,11445,10461],{"class":1228},[1079,11447,1495],{"class":1494},[1079,11449,10466],{"class":1190},[1079,11451,1501],{"class":1494},[1079,11453,10471],{"class":1228},[1079,11455,1204],{"class":1116},[1079,11457,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484],{"class":1081,"line":8593},[1079,11459,11373],{"class":1096},[1079,11461,1181],{"class":1116},[1079,11463,5403],{"class":1190},[1079,11465,1134],{"class":1116},[1079,11467,10487],{"class":1190},[1079,11469,1141],{"class":1116},[1079,11471,10492],{"class":1196},[1079,11473,1175],{"class":1116},[1079,11475,3476],{"class":1957},[1079,11477,1141],{"class":1116},[1079,11479,10501],{"class":1196},[1079,11481,1175],{"class":1116},[1079,11483,10506],{"class":1546},[1079,11485,1204],{"class":1116},[1079,11487,11488],{"class":1081,"line":8599},[1079,11489,11347],{"class":1096},[1079,11491,11492,11495,11497,11499],{"class":1081,"line":8606},[1079,11493,11494],{"class":1096},"                    thumbnails",[1079,11496,1181],{"class":1116},[1079,11498,7068],{"class":1190},[1079,11500,1733],{"class":1116},[1079,11502,11503,11506,11508,11510,11512,11514,11516,11518,11520],{"class":1081,"line":8628},[1079,11504,11505],{"class":1224},"                        '",[1079,11507,10568],{"class":1228},[1079,11509,1232],{"class":1224},[1079,11511,1747],{"class":1116},[1079,11513,6719],{"class":1116},[1079,11515,10393],{"class":1190},[1079,11517,1141],{"class":1116},[1079,11519,10320],{"class":1190},[1079,11521,3880],{"class":1116},[1079,11523,11524,11526,11528,11530,11532,11534],{"class":1081,"line":8651},[1079,11525,11505],{"class":1224},[1079,11527,10101],{"class":1228},[1079,11529,1232],{"class":1224},[1079,11531,1747],{"class":1116},[1079,11533,10548],{"class":1190},[1079,11535,1757],{"class":1116},[1079,11537,11538,11540,11543,11545,11547,11549,11551,11553,11555,11557,11559,11561],{"class":1081,"line":8667},[1079,11539,11505],{"class":1224},[1079,11541,11542],{"class":1228},"file_size",[1079,11544,1232],{"class":1224},[1079,11546,1747],{"class":1116},[1079,11548,10096],{"class":1190},[1079,11550,1181],{"class":1116},[1079,11552,10101],{"class":1184},[1079,11554,1181],{"class":1116},[1079,11556,10875],{"class":1190},[1079,11558,1134],{"class":1116},[1079,11560,10487],{"class":1190},[1079,11562,1204],{"class":1116},[1079,11564,11565],{"class":1081,"line":8682},[1079,11566,11567],{"class":1116},"                    })\n",[1079,11569,11570],{"class":1081,"line":8687},[1079,11571,9288],{"class":1096},[1079,11573,11574,11576],{"class":1081,"line":8692},[1079,11575,10517],{"class":1092},[1079,11577,2048],{"class":1116},[1079,11579,11580,11582,11584,11586,11588,11590],{"class":1081,"line":8699},[1079,11581,7614],{"class":1224},[1079,11583,10526],{"class":1228},[1079,11585,1232],{"class":1224},[1079,11587,1747],{"class":1116},[1079,11589,10039],{"class":1096},[1079,11591,1757],{"class":1116},[1079,11593,11594,11596,11599,11601,11603,11606],{"class":1081,"line":8716},[1079,11595,7614],{"class":1224},[1079,11597,11598],{"class":1228},"thumbnails",[1079,11600,1232],{"class":1224},[1079,11602,1747],{"class":1116},[1079,11604,11605],{"class":1096}," thumbnails",[1079,11607,1757],{"class":1116},[1079,11609,11610,11612,11615,11617,11619,11621,11623,11625],{"class":1081,"line":8731},[1079,11611,7614],{"class":1224},[1079,11613,11614],{"class":1228},"total_thumbnails",[1079,11616,1232],{"class":1224},[1079,11618,1747],{"class":1116},[1079,11620,5904],{"class":1482},[1079,11622,1134],{"class":1116},[1079,11624,11598],{"class":1190},[1079,11626,1204],{"class":1116},[1079,11628,11629],{"class":1081,"line":8751},[1079,11630,7679],{"class":1116},[1079,11632,11633],{"class":1081,"line":8771},[1079,11634,5012],{"class":1096},[1079,11636,11637,11639,11641,11643,11645],{"class":1081,"line":8776},[1079,11638,7239],{"class":1092},[1079,11640,5209],{"class":3733},[1079,11642,5212],{"class":1092},[1079,11644,5215],{"class":1096},[1079,11646,3572],{"class":1116},[1079,11648,11649,11651,11653,11655,11657,11660,11662,11664,11666,11668,11670,11672,11674],{"class":1081,"line":8781},[1079,11650,9089],{"class":1092},[1079,11652,5209],{"class":3733},[1079,11654,1134],{"class":1116},[1079,11656,1488],{"class":1127},[1079,11658,11659],{"class":1228},"\"Thumbnail generation failed: ",[1079,11661,1495],{"class":1494},[1079,11663,5236],{"class":3733},[1079,11665,1134],{"class":1116},[1079,11667,5241],{"class":1190},[1079,11669,1999],{"class":1116},[1079,11671,1501],{"class":1494},[1079,11673,1594],{"class":1228},[1079,11675,1204],{"class":1116},[1079,11677,11678],{"class":1081,"line":8794},[1079,11679,1110],{"emptyLinePlaceholder":1109},[1079,11681,11682],{"class":1081,"line":8820},[1079,11683,9948],{"class":1085},[1079,11685,11687,11690,11692,11694],{"class":1081,"line":11686},213,[1079,11688,11689],{"class":1096},"file_processing_task ",[1079,11691,1175],{"class":1116},[1079,11693,9970],{"class":1190},[1079,11695,1852],{"class":1116},[1030,11697,11699],{"id":11698},"enqueueing-tasks","Enqueueing Tasks",[1035,11701,11703],{"id":11702},"basic-task-enqueueing","Basic Task Enqueueing",[1069,11705,11707],{"className":1071,"code":11706,"language":1073,"meta":1074,"style":1074},"# views.py - Enqueueing tasks from views\nfrom django.http import JsonResponse\nfrom django.shortcuts import get_object_or_404\nfrom django.contrib.auth.decorators import login_required\nfrom django.views.decorators.http import require_POST\nfrom .tasks import (\n    send_welcome_email, \n    process_user_data, \n    batch_process_posts,\n    data_migration_task,\n    file_processing_task\n)\nimport json\n\n@require_POST\n@login_required\ndef send_welcome_email_view(request):\n    \"\"\"Enqueue welcome email task.\"\"\"\n    user_id = request.POST.get('user_id')\n    \n    if not user_id:\n        return JsonResponse({'error': 'User ID required'}, status=400)\n    \n    # Enqueue task\n    task_result = send_welcome_email.delay(user_id)\n    \n    return JsonResponse({\n        'task_id': task_result.id,\n        'status': 'queued',\n        'message': 'Welcome email task queued successfully'\n    })\n\n@require_POST\n@login_required\ndef update_user_profile_view(request):\n    \"\"\"Enqueue user profile update task.\"\"\"\n    try:\n        data = json.loads(request.body)\n        user_id = data.get('user_id')\n        updates = data.get('updates', {})\n        \n        if not user_id:\n            return JsonResponse({'error': 'User ID required'}, status=400)\n        \n        # Enqueue task with priority\n        task_result = process_user_data.apply_async(\n            args=[user_id, updates],\n            priority=5,  # Higher priority\n            countdown=10  # Delay execution by 10 seconds\n        )\n        \n        return JsonResponse({\n            'task_id': task_result.id,\n            'status': 'queued',\n            'message': 'User profile update queued'\n        })\n    \n    except json.JSONDecodeError:\n        return JsonResponse({'error': 'Invalid JSON'}, status=400)\n\n@require_POST\n@login_required\ndef batch_publish_posts_view(request):\n    \"\"\"Enqueue batch post publishing task.\"\"\"\n    try:\n        data = json.loads(request.body)\n        post_ids = data.get('post_ids', [])\n        \n        if not post_ids:\n            return JsonResponse({'error': 'Post IDs required'}, status=400)\n        \n        # Enqueue batch task\n        task_result = batch_process_posts.delay(\n            post_ids, \n            'publish'\n        )\n        \n        return JsonResponse({\n            'task_id': task_result.id,\n            'status': 'queued',\n            'total_posts': len(post_ids),\n            'message': 'Batch publish task queued'\n        })\n    \n    except json.JSONDecodeError:\n        return JsonResponse({'error': 'Invalid JSON'}, status=400)\n\ndef start_data_migration_view(request):\n    \"\"\"Start data migration task.\"\"\"\n    migration_type = request.GET.get('type', 'user_profiles')\n    batch_size = int(request.GET.get('batch_size', 1000))\n    \n    # Enqueue migration task\n    task_result = data_migration_task.delay(\n        migration_type=migration_type,\n        batch_size=batch_size\n    )\n    \n    return JsonResponse({\n        'task_id': task_result.id,\n        'migration_type': migration_type,\n        'batch_size': batch_size,\n        'status': 'started'\n    })\n\n@require_POST\ndef process_uploaded_file_view(request):\n    \"\"\"Process uploaded file.\"\"\"\n    uploaded_file = request.FILES.get('file')\n    processing_type = request.POST.get('processing_type', 'image_resize')\n    \n    if not uploaded_file:\n        return JsonResponse({'error': 'No file uploaded'}, status=400)\n    \n    # Save uploaded file\n    import os\n    from django.conf import settings\n    \n    upload_dir = os.path.join(settings.MEDIA_ROOT, 'uploads')\n    os.makedirs(upload_dir, exist_ok=True)\n    \n    file_path = os.path.join(upload_dir, uploaded_file.name)\n    \n    with open(file_path, 'wb+') as destination:\n        for chunk in uploaded_file.chunks():\n            destination.write(chunk)\n    \n    # Enqueue processing task\n    options = {}\n    if processing_type == 'image_resize':\n        options = {\n            'width': int(request.POST.get('width', 800)),\n            'height': int(request.POST.get('height', 600))\n        }\n    elif processing_type == 'image_optimize':\n        options = {\n            'quality': int(request.POST.get('quality', 85))\n        }\n    \n    task_result = file_processing_task.delay(\n        file_path=file_path,\n        processing_type=processing_type,\n        **options\n    )\n    \n    return JsonResponse({\n        'task_id': task_result.id,\n        'file_name': uploaded_file.name,\n        'processing_type': processing_type,\n        'status': 'queued'\n    })\n",[1076,11708,11709,11714,11728,11744,11768,11793,11806,11815,11824,11831,11838,11843,11847,11854,11858,11865,11872,11885,11894,11923,11927,11938,11974,11978,11983,12001,12005,12013,12031,12050,12067,12071,12075,12081,12087,12100,12109,12115,12140,12163,12189,12193,12203,12235,12239,12244,12260,12276,12289,12301,12305,12309,12317,12335,12353,12370,12375,12379,12392,12425,12429,12435,12441,12454,12463,12469,12491,12517,12521,12531,12564,12568,12573,12587,12596,12604,12608,12612,12620,12638,12656,12675,12692,12696,12700,12712,12744,12748,12761,12770,12807,12844,12848,12853,12868,12879,12888,12892,12896,12904,12922,12936,12950,12966,12970,12974,12980,12993,13001,13030,13065,13069,13080,13113,13117,13122,13129,13144,13148,13186,13212,13216,13248,13252,13282,13300,13317,13321,13326,13335,13351,13360,13400,13438,13442,13459,13467,13506,13510,13514,13529,13540,13551,13559,13563,13567,13575,13593,13612,13626,13642],{"__ignoreMap":1074},[1079,11710,11711],{"class":1081,"line":1082},[1079,11712,11713],{"class":1085},"# views.py - Enqueueing tasks from views\n",[1079,11715,11716,11718,11720,11722,11724,11726],{"class":1081,"line":1089},[1079,11717,1093],{"class":1092},[1079,11719,1267],{"class":1096},[1079,11721,1181],{"class":1116},[1079,11723,1427],{"class":1096},[1079,11725,1100],{"class":1092},[1079,11727,1432],{"class":1096},[1079,11729,11730,11732,11734,11736,11739,11741],{"class":1081,"line":1106},[1079,11731,1093],{"class":1092},[1079,11733,1267],{"class":1096},[1079,11735,1181],{"class":1116},[1079,11737,11738],{"class":1096},"shortcuts ",[1079,11740,1100],{"class":1092},[1079,11742,11743],{"class":1096}," get_object_or_404\n",[1079,11745,11746,11748,11750,11752,11754,11756,11758,11760,11763,11765],{"class":1081,"line":1113},[1079,11747,1093],{"class":1092},[1079,11749,1267],{"class":1096},[1079,11751,1181],{"class":1116},[1079,11753,4808],{"class":1096},[1079,11755,1181],{"class":1116},[1079,11757,4813],{"class":1096},[1079,11759,1181],{"class":1116},[1079,11761,11762],{"class":1096},"decorators ",[1079,11764,1100],{"class":1092},[1079,11766,11767],{"class":1096}," login_required\n",[1079,11769,11770,11772,11774,11776,11779,11781,11784,11786,11788,11790],{"class":1081,"line":1124},[1079,11771,1093],{"class":1092},[1079,11773,1267],{"class":1096},[1079,11775,1181],{"class":1116},[1079,11777,11778],{"class":1096},"views",[1079,11780,1181],{"class":1116},[1079,11782,11783],{"class":1096},"decorators",[1079,11785,1181],{"class":1116},[1079,11787,1427],{"class":1096},[1079,11789,1100],{"class":1092},[1079,11791,11792],{"class":1096}," require_POST\n",[1079,11794,11795,11797,11799,11801,11803],{"class":1081,"line":1155},[1079,11796,1093],{"class":1092},[1079,11798,4829],{"class":1116},[1079,11800,1272],{"class":1096},[1079,11802,1100],{"class":1092},[1079,11804,11805],{"class":1116}," (\n",[1079,11807,11808,11811,11813],{"class":1081,"line":1169},[1079,11809,11810],{"class":1096},"    send_welcome_email",[1079,11812,1141],{"class":1116},[1079,11814,3509],{"class":1096},[1079,11816,11817,11820,11822],{"class":1081,"line":1207},[1079,11818,11819],{"class":1096},"    process_user_data",[1079,11821,1141],{"class":1116},[1079,11823,3509],{"class":1096},[1079,11825,11826,11829],{"class":1081,"line":1251},[1079,11827,11828],{"class":1096},"    batch_process_posts",[1079,11830,1757],{"class":1116},[1079,11832,11833,11836],{"class":1081,"line":1256},[1079,11834,11835],{"class":1096},"    data_migration_task",[1079,11837,1757],{"class":1116},[1079,11839,11840],{"class":1081,"line":1262},[1079,11841,11842],{"class":1096},"    file_processing_task\n",[1079,11844,11845],{"class":1081,"line":1280},[1079,11846,1204],{"class":1116},[1079,11848,11849,11851],{"class":1081,"line":1285},[1079,11850,1100],{"class":1092},[1079,11852,11853],{"class":1096}," json\n",[1079,11855,11856],{"class":1081,"line":1293},[1079,11857,1110],{"emptyLinePlaceholder":1109},[1079,11859,11860,11862],{"class":1081,"line":1315},[1079,11861,1117],{"class":1116},[1079,11863,11864],{"class":1120},"require_POST\n",[1079,11866,11867,11869],{"class":1081,"line":1325},[1079,11868,1117],{"class":1116},[1079,11870,11871],{"class":1120},"login_required\n",[1079,11873,11874,11876,11879,11881,11883],{"class":1081,"line":1352},[1079,11875,1128],{"class":1127},[1079,11877,11878],{"class":1120}," send_welcome_email_view",[1079,11880,1134],{"class":1116},[1079,11882,1667],{"class":1137},[1079,11884,1152],{"class":1116},[1079,11886,11887,11889,11892],{"class":1081,"line":1652},[1079,11888,1159],{"class":1158},[1079,11890,11891],{"class":1162},"Enqueue welcome email task.",[1079,11893,1166],{"class":1158},[1079,11895,11896,11899,11901,11904,11906,11909,11911,11913,11915,11917,11919,11921],{"class":1081,"line":1657},[1079,11897,11898],{"class":1096},"    user_id ",[1079,11900,1175],{"class":1116},[1079,11902,11903],{"class":1096}," request",[1079,11905,1181],{"class":1116},[1079,11907,11908],{"class":3524},"POST",[1079,11910,1181],{"class":1116},[1079,11912,1191],{"class":1190},[1079,11914,1134],{"class":1116},[1079,11916,1232],{"class":1224},[1079,11918,1138],{"class":1228},[1079,11920,1232],{"class":1224},[1079,11922,1204],{"class":1116},[1079,11924,11925],{"class":1081,"line":1672},[1079,11926,1511],{"class":1096},[1079,11928,11929,11932,11934,11936],{"class":1081,"line":1682},[1079,11930,11931],{"class":1092},"    if",[1079,11933,10093],{"class":1577},[1079,11935,6240],{"class":1096},[1079,11937,3572],{"class":1116},[1079,11939,11940,11942,11944,11947,11949,11951,11953,11955,11957,11960,11962,11965,11967,11969,11972],{"class":1081,"line":1688},[1079,11941,3817],{"class":1092},[1079,11943,1730],{"class":1190},[1079,11945,11946],{"class":1116},"({",[1079,11948,1232],{"class":1224},[1079,11950,6611],{"class":1228},[1079,11952,1232],{"class":1224},[1079,11954,1747],{"class":1116},[1079,11956,1225],{"class":1224},[1079,11958,11959],{"class":1228},"User ID required",[1079,11961,1232],{"class":1224},[1079,11963,11964],{"class":1116},"},",[1079,11966,3793],{"class":1196},[1079,11968,1175],{"class":1116},[1079,11970,11971],{"class":1546},"400",[1079,11973,1204],{"class":1116},[1079,11975,11976],{"class":1081,"line":1720},[1079,11977,1511],{"class":1096},[1079,11979,11980],{"class":1081,"line":1725},[1079,11981,11982],{"class":1085},"    # Enqueue task\n",[1079,11984,11985,11987,11989,11991,11993,11995,11997,11999],{"class":1081,"line":1736},[1079,11986,1691],{"class":1096},[1079,11988,1175],{"class":1116},[1079,11990,4958],{"class":1096},[1079,11992,1181],{"class":1116},[1079,11994,1700],{"class":1190},[1079,11996,1134],{"class":1116},[1079,11998,1138],{"class":1190},[1079,12000,1204],{"class":1116},[1079,12002,12003],{"class":1081,"line":1760},[1079,12004,1511],{"class":1096},[1079,12006,12007,12009,12011],{"class":1081,"line":1781},[1079,12008,1646],{"class":1092},[1079,12010,1730],{"class":1190},[1079,12012,1733],{"class":1116},[1079,12014,12015,12017,12019,12021,12023,12025,12027,12029],{"class":1081,"line":1801},[1079,12016,1739],{"class":1224},[1079,12018,1742],{"class":1228},[1079,12020,1232],{"class":1224},[1079,12022,1747],{"class":1116},[1079,12024,1750],{"class":1190},[1079,12026,1181],{"class":1116},[1079,12028,1197],{"class":1184},[1079,12030,1757],{"class":1116},[1079,12032,12033,12035,12037,12039,12041,12043,12046,12048],{"class":1081,"line":1807},[1079,12034,1739],{"class":1224},[1079,12036,1765],{"class":1228},[1079,12038,1232],{"class":1224},[1079,12040,1747],{"class":1116},[1079,12042,1225],{"class":1224},[1079,12044,12045],{"class":1228},"queued",[1079,12047,1232],{"class":1224},[1079,12049,1757],{"class":1116},[1079,12051,12052,12054,12056,12058,12060,12062,12065],{"class":1081,"line":1812},[1079,12053,1739],{"class":1224},[1079,12055,1786],{"class":1228},[1079,12057,1232],{"class":1224},[1079,12059,1747],{"class":1116},[1079,12061,1225],{"class":1224},[1079,12063,12064],{"class":1228},"Welcome email task queued successfully",[1079,12066,1798],{"class":1224},[1079,12068,12069],{"class":1081,"line":1831},[1079,12070,1804],{"class":1116},[1079,12072,12073],{"class":1081,"line":1841},[1079,12074,1110],{"emptyLinePlaceholder":1109},[1079,12076,12077,12079],{"class":1081,"line":1855},[1079,12078,1117],{"class":1116},[1079,12080,11864],{"class":1120},[1079,12082,12083,12085],{"class":1081,"line":1876},[1079,12084,1117],{"class":1116},[1079,12086,11871],{"class":1120},[1079,12088,12089,12091,12094,12096,12098],{"class":1081,"line":1881},[1079,12090,1128],{"class":1127},[1079,12092,12093],{"class":1120}," update_user_profile_view",[1079,12095,1134],{"class":1116},[1079,12097,1667],{"class":1137},[1079,12099,1152],{"class":1116},[1079,12101,12102,12104,12107],{"class":1081,"line":1890},[1079,12103,1159],{"class":1158},[1079,12105,12106],{"class":1162},"Enqueue user profile update task.",[1079,12108,1166],{"class":1158},[1079,12110,12111,12113],{"class":1081,"line":1905},[1079,12112,4978],{"class":1092},[1079,12114,3572],{"class":1116},[1079,12116,12117,12119,12121,12124,12126,12129,12131,12133,12135,12138],{"class":1081,"line":1924},[1079,12118,5774],{"class":1096},[1079,12120,1175],{"class":1116},[1079,12122,12123],{"class":1096}," json",[1079,12125,1181],{"class":1116},[1079,12127,12128],{"class":1190},"loads",[1079,12130,1134],{"class":1116},[1079,12132,1667],{"class":1190},[1079,12134,1181],{"class":1116},[1079,12136,12137],{"class":1184},"body",[1079,12139,1204],{"class":1116},[1079,12141,12142,12145,12147,12149,12151,12153,12155,12157,12159,12161],{"class":1081,"line":1963},[1079,12143,12144],{"class":1096},"        user_id ",[1079,12146,1175],{"class":1116},[1079,12148,5816],{"class":1096},[1079,12150,1181],{"class":1116},[1079,12152,1191],{"class":1190},[1079,12154,1134],{"class":1116},[1079,12156,1232],{"class":1224},[1079,12158,1138],{"class":1228},[1079,12160,1232],{"class":1224},[1079,12162,1204],{"class":1116},[1079,12164,12165,12168,12170,12172,12174,12176,12178,12180,12183,12185,12187],{"class":1081,"line":2007},[1079,12166,12167],{"class":1096},"        updates ",[1079,12169,1175],{"class":1116},[1079,12171,5816],{"class":1096},[1079,12173,1181],{"class":1116},[1079,12175,1191],{"class":1190},[1079,12177,1134],{"class":1116},[1079,12179,1232],{"class":1224},[1079,12181,12182],{"class":1228},"updates",[1079,12184,1232],{"class":1224},[1079,12186,1141],{"class":1116},[1079,12188,5475],{"class":1116},[1079,12190,12191],{"class":1081,"line":2421},[1079,12192,5012],{"class":1096},[1079,12194,12195,12197,12199,12201],{"class":1081,"line":2434},[1079,12196,9018],{"class":1092},[1079,12198,10093],{"class":1577},[1079,12200,6240],{"class":1096},[1079,12202,3572],{"class":1116},[1079,12204,12205,12207,12209,12211,12213,12215,12217,12219,12221,12223,12225,12227,12229,12231,12233],{"class":1081,"line":2453},[1079,12206,9037],{"class":1092},[1079,12208,1730],{"class":1190},[1079,12210,11946],{"class":1116},[1079,12212,1232],{"class":1224},[1079,12214,6611],{"class":1228},[1079,12216,1232],{"class":1224},[1079,12218,1747],{"class":1116},[1079,12220,1225],{"class":1224},[1079,12222,11959],{"class":1228},[1079,12224,1232],{"class":1224},[1079,12226,11964],{"class":1116},[1079,12228,3793],{"class":1196},[1079,12230,1175],{"class":1116},[1079,12232,11971],{"class":1546},[1079,12234,1204],{"class":1116},[1079,12236,12237],{"class":1081,"line":2459},[1079,12238,5012],{"class":1096},[1079,12240,12241],{"class":1081,"line":2473},[1079,12242,12243],{"class":1085},"        # Enqueue task with priority\n",[1079,12245,12246,12249,12251,12253,12255,12258],{"class":1081,"line":2492},[1079,12247,12248],{"class":1096},"        task_result ",[1079,12250,1175],{"class":1116},[1079,12252,5266],{"class":1096},[1079,12254,1181],{"class":1116},[1079,12256,12257],{"class":1190},"apply_async",[1079,12259,3495],{"class":1116},[1079,12261,12262,12265,12267,12269,12271,12274],{"class":1081,"line":2505},[1079,12263,12264],{"class":1196},"            args",[1079,12266,3614],{"class":1116},[1079,12268,1138],{"class":1190},[1079,12270,1141],{"class":1116},[1079,12272,12273],{"class":1190}," updates",[1079,12275,3271],{"class":1116},[1079,12277,12278,12280,12282,12284,12286],{"class":1081,"line":2518},[1079,12279,3857],{"class":1196},[1079,12281,1175],{"class":1116},[1079,12283,1705],{"class":1546},[1079,12285,1141],{"class":1116},[1079,12287,12288],{"class":1085},"  # Higher priority\n",[1079,12290,12291,12293,12295,12298],{"class":1081,"line":2538},[1079,12292,6770],{"class":1196},[1079,12294,1175],{"class":1116},[1079,12296,12297],{"class":1546},"10",[1079,12299,12300],{"class":1085},"  # Delay execution by 10 seconds\n",[1079,12302,12303],{"class":1081,"line":2553},[1079,12304,3936],{"class":1116},[1079,12306,12307],{"class":1081,"line":2569},[1079,12308,5012],{"class":1096},[1079,12310,12311,12313,12315],{"class":1081,"line":2575},[1079,12312,3817],{"class":1092},[1079,12314,1730],{"class":1190},[1079,12316,1733],{"class":1116},[1079,12318,12319,12321,12323,12325,12327,12329,12331,12333],{"class":1081,"line":2580},[1079,12320,2100],{"class":1224},[1079,12322,1742],{"class":1228},[1079,12324,1232],{"class":1224},[1079,12326,1747],{"class":1116},[1079,12328,1750],{"class":1190},[1079,12330,1181],{"class":1116},[1079,12332,1197],{"class":1184},[1079,12334,1757],{"class":1116},[1079,12336,12337,12339,12341,12343,12345,12347,12349,12351],{"class":1081,"line":2585},[1079,12338,2100],{"class":1224},[1079,12340,1765],{"class":1228},[1079,12342,1232],{"class":1224},[1079,12344,1747],{"class":1116},[1079,12346,1225],{"class":1224},[1079,12348,12045],{"class":1228},[1079,12350,1232],{"class":1224},[1079,12352,1757],{"class":1116},[1079,12354,12355,12357,12359,12361,12363,12365,12368],{"class":1081,"line":2599},[1079,12356,2100],{"class":1224},[1079,12358,1786],{"class":1228},[1079,12360,1232],{"class":1224},[1079,12362,1747],{"class":1116},[1079,12364,1225],{"class":1224},[1079,12366,12367],{"class":1228},"User profile update queued",[1079,12369,1798],{"class":1224},[1079,12371,12372],{"class":1081,"line":2618},[1079,12373,12374],{"class":1116},"        })\n",[1079,12376,12377],{"class":1081,"line":2631},[1079,12378,1511],{"class":1096},[1079,12380,12381,12383,12385,12387,12390],{"class":1081,"line":2651},[1079,12382,5175],{"class":1092},[1079,12384,12123],{"class":1096},[1079,12386,1181],{"class":1116},[1079,12388,12389],{"class":1184},"JSONDecodeError",[1079,12391,3572],{"class":1116},[1079,12393,12394,12396,12398,12400,12402,12404,12406,12408,12410,12413,12415,12417,12419,12421,12423],{"class":1081,"line":2656},[1079,12395,3817],{"class":1092},[1079,12397,1730],{"class":1190},[1079,12399,11946],{"class":1116},[1079,12401,1232],{"class":1224},[1079,12403,6611],{"class":1228},[1079,12405,1232],{"class":1224},[1079,12407,1747],{"class":1116},[1079,12409,1225],{"class":1224},[1079,12411,12412],{"class":1228},"Invalid JSON",[1079,12414,1232],{"class":1224},[1079,12416,11964],{"class":1116},[1079,12418,3793],{"class":1196},[1079,12420,1175],{"class":1116},[1079,12422,11971],{"class":1546},[1079,12424,1204],{"class":1116},[1079,12426,12427],{"class":1081,"line":2661},[1079,12428,1110],{"emptyLinePlaceholder":1109},[1079,12430,12431,12433],{"class":1081,"line":2666},[1079,12432,1117],{"class":1116},[1079,12434,11864],{"class":1120},[1079,12436,12437,12439],{"class":1081,"line":2671},[1079,12438,1117],{"class":1116},[1079,12440,11871],{"class":1120},[1079,12442,12443,12445,12448,12450,12452],{"class":1081,"line":2677},[1079,12444,1128],{"class":1127},[1079,12446,12447],{"class":1120}," batch_publish_posts_view",[1079,12449,1134],{"class":1116},[1079,12451,1667],{"class":1137},[1079,12453,1152],{"class":1116},[1079,12455,12456,12458,12461],{"class":1081,"line":2687},[1079,12457,1159],{"class":1158},[1079,12459,12460],{"class":1162},"Enqueue batch post publishing task.",[1079,12462,1166],{"class":1158},[1079,12464,12465,12467],{"class":1081,"line":2720},[1079,12466,4978],{"class":1092},[1079,12468,3572],{"class":1116},[1079,12470,12471,12473,12475,12477,12479,12481,12483,12485,12487,12489],{"class":1081,"line":2750},[1079,12472,5774],{"class":1096},[1079,12474,1175],{"class":1116},[1079,12476,12123],{"class":1096},[1079,12478,1181],{"class":1116},[1079,12480,12128],{"class":1190},[1079,12482,1134],{"class":1116},[1079,12484,1667],{"class":1190},[1079,12486,1181],{"class":1116},[1079,12488,12137],{"class":1184},[1079,12490,1204],{"class":1116},[1079,12492,12493,12496,12498,12500,12502,12504,12506,12508,12510,12512,12514],{"class":1081,"line":2780},[1079,12494,12495],{"class":1096},"        post_ids ",[1079,12497,1175],{"class":1116},[1079,12499,5816],{"class":1096},[1079,12501,1181],{"class":1116},[1079,12503,1191],{"class":1190},[1079,12505,1134],{"class":1116},[1079,12507,1232],{"class":1224},[1079,12509,7520],{"class":1228},[1079,12511,1232],{"class":1224},[1079,12513,1141],{"class":1116},[1079,12515,12516],{"class":1116}," [])\n",[1079,12518,12519],{"class":1081,"line":2785},[1079,12520,5012],{"class":1096},[1079,12522,12523,12525,12527,12529],{"class":1081,"line":2790},[1079,12524,9018],{"class":1092},[1079,12526,10093],{"class":1577},[1079,12528,7442],{"class":1096},[1079,12530,3572],{"class":1116},[1079,12532,12533,12535,12537,12539,12541,12543,12545,12547,12549,12552,12554,12556,12558,12560,12562],{"class":1081,"line":2796},[1079,12534,9037],{"class":1092},[1079,12536,1730],{"class":1190},[1079,12538,11946],{"class":1116},[1079,12540,1232],{"class":1224},[1079,12542,6611],{"class":1228},[1079,12544,1232],{"class":1224},[1079,12546,1747],{"class":1116},[1079,12548,1225],{"class":1224},[1079,12550,12551],{"class":1228},"Post IDs required",[1079,12553,1232],{"class":1224},[1079,12555,11964],{"class":1116},[1079,12557,3793],{"class":1196},[1079,12559,1175],{"class":1116},[1079,12561,11971],{"class":1546},[1079,12563,1204],{"class":1116},[1079,12565,12566],{"class":1081,"line":2806},[1079,12567,5012],{"class":1096},[1079,12569,12570],{"class":1081,"line":2819},[1079,12571,12572],{"class":1085},"        # Enqueue batch task\n",[1079,12574,12575,12577,12579,12581,12583,12585],{"class":1081,"line":2836},[1079,12576,12248],{"class":1096},[1079,12578,1175],{"class":1116},[1079,12580,7433],{"class":1096},[1079,12582,1181],{"class":1116},[1079,12584,1700],{"class":1190},[1079,12586,3495],{"class":1116},[1079,12588,12589,12592,12594],{"class":1081,"line":2853},[1079,12590,12591],{"class":1190},"            post_ids",[1079,12593,1141],{"class":1116},[1079,12595,3509],{"class":1190},[1079,12597,12598,12600,12602],{"class":1081,"line":2873},[1079,12599,2100],{"class":1224},[1079,12601,7739],{"class":1228},[1079,12603,1798],{"class":1224},[1079,12605,12606],{"class":1081,"line":2878},[1079,12607,3936],{"class":1116},[1079,12609,12610],{"class":1081,"line":2891},[1079,12611,5012],{"class":1096},[1079,12613,12614,12616,12618],{"class":1081,"line":2907},[1079,12615,3817],{"class":1092},[1079,12617,1730],{"class":1190},[1079,12619,1733],{"class":1116},[1079,12621,12622,12624,12626,12628,12630,12632,12634,12636],{"class":1081,"line":2923},[1079,12623,2100],{"class":1224},[1079,12625,1742],{"class":1228},[1079,12627,1232],{"class":1224},[1079,12629,1747],{"class":1116},[1079,12631,1750],{"class":1190},[1079,12633,1181],{"class":1116},[1079,12635,1197],{"class":1184},[1079,12637,1757],{"class":1116},[1079,12639,12640,12642,12644,12646,12648,12650,12652,12654],{"class":1081,"line":2942},[1079,12641,2100],{"class":1224},[1079,12643,1765],{"class":1228},[1079,12645,1232],{"class":1224},[1079,12647,1747],{"class":1116},[1079,12649,1225],{"class":1224},[1079,12651,12045],{"class":1228},[1079,12653,1232],{"class":1224},[1079,12655,1757],{"class":1116},[1079,12657,12658,12660,12663,12665,12667,12669,12671,12673],{"class":1081,"line":2947},[1079,12659,2100],{"class":1224},[1079,12661,12662],{"class":1228},"total_posts",[1079,12664,1232],{"class":1224},[1079,12666,1747],{"class":1116},[1079,12668,5904],{"class":1482},[1079,12670,1134],{"class":1116},[1079,12672,7520],{"class":1190},[1079,12674,3880],{"class":1116},[1079,12676,12677,12679,12681,12683,12685,12687,12690],{"class":1081,"line":2952},[1079,12678,2100],{"class":1224},[1079,12680,1786],{"class":1228},[1079,12682,1232],{"class":1224},[1079,12684,1747],{"class":1116},[1079,12686,1225],{"class":1224},[1079,12688,12689],{"class":1228},"Batch publish task queued",[1079,12691,1798],{"class":1224},[1079,12693,12694],{"class":1081,"line":2957},[1079,12695,12374],{"class":1116},[1079,12697,12698],{"class":1081,"line":2963},[1079,12699,1511],{"class":1096},[1079,12701,12702,12704,12706,12708,12710],{"class":1081,"line":2981},[1079,12703,5175],{"class":1092},[1079,12705,12123],{"class":1096},[1079,12707,1181],{"class":1116},[1079,12709,12389],{"class":1184},[1079,12711,3572],{"class":1116},[1079,12713,12714,12716,12718,12720,12722,12724,12726,12728,12730,12732,12734,12736,12738,12740,12742],{"class":1081,"line":2986},[1079,12715,3817],{"class":1092},[1079,12717,1730],{"class":1190},[1079,12719,11946],{"class":1116},[1079,12721,1232],{"class":1224},[1079,12723,6611],{"class":1228},[1079,12725,1232],{"class":1224},[1079,12727,1747],{"class":1116},[1079,12729,1225],{"class":1224},[1079,12731,12412],{"class":1228},[1079,12733,1232],{"class":1224},[1079,12735,11964],{"class":1116},[1079,12737,3793],{"class":1196},[1079,12739,1175],{"class":1116},[1079,12741,11971],{"class":1546},[1079,12743,1204],{"class":1116},[1079,12745,12746],{"class":1081,"line":2992},[1079,12747,1110],{"emptyLinePlaceholder":1109},[1079,12749,12750,12752,12755,12757,12759],{"class":1081,"line":3006},[1079,12751,1128],{"class":1127},[1079,12753,12754],{"class":1120}," start_data_migration_view",[1079,12756,1134],{"class":1116},[1079,12758,1667],{"class":1137},[1079,12760,1152],{"class":1116},[1079,12762,12763,12765,12768],{"class":1081,"line":3011},[1079,12764,1159],{"class":1158},[1079,12766,12767],{"class":1162},"Start data migration task.",[1079,12769,1166],{"class":1158},[1079,12771,12772,12775,12777,12779,12781,12784,12786,12788,12790,12792,12795,12797,12799,12801,12803,12805],{"class":1081,"line":3017},[1079,12773,12774],{"class":1096},"    migration_type ",[1079,12776,1175],{"class":1116},[1079,12778,11903],{"class":1096},[1079,12780,1181],{"class":1116},[1079,12782,12783],{"class":3524},"GET",[1079,12785,1181],{"class":1116},[1079,12787,1191],{"class":1190},[1079,12789,1134],{"class":1116},[1079,12791,1232],{"class":1224},[1079,12793,12794],{"class":1228},"type",[1079,12796,1232],{"class":1224},[1079,12798,1141],{"class":1116},[1079,12800,1225],{"class":1224},[1079,12802,9028],{"class":1228},[1079,12804,1232],{"class":1224},[1079,12806,1204],{"class":1116},[1079,12808,12809,12812,12814,12817,12819,12821,12823,12825,12827,12829,12831,12833,12835,12837,12839,12841],{"class":1081,"line":3031},[1079,12810,12811],{"class":1096},"    batch_size ",[1079,12813,1175],{"class":1116},[1079,12815,12816],{"class":3733}," int",[1079,12818,1134],{"class":1116},[1079,12820,1667],{"class":1190},[1079,12822,1181],{"class":1116},[1079,12824,12783],{"class":3524},[1079,12826,1181],{"class":1116},[1079,12828,1191],{"class":1190},[1079,12830,1134],{"class":1116},[1079,12832,1232],{"class":1224},[1079,12834,9004],{"class":1228},[1079,12836,1232],{"class":1224},[1079,12838,1141],{"class":1116},[1079,12840,2387],{"class":1546},[1079,12842,12843],{"class":1116},"))\n",[1079,12845,12846],{"class":1081,"line":3042},[1079,12847,1511],{"class":1096},[1079,12849,12850],{"class":1081,"line":3047},[1079,12851,12852],{"class":1085},"    # Enqueue migration task\n",[1079,12854,12855,12857,12859,12862,12864,12866],{"class":1081,"line":3053},[1079,12856,1691],{"class":1096},[1079,12858,1175],{"class":1116},[1079,12860,12861],{"class":1096}," data_migration_task",[1079,12863,1181],{"class":1116},[1079,12865,1700],{"class":1190},[1079,12867,3495],{"class":1116},[1079,12869,12870,12873,12875,12877],{"class":1081,"line":3064},[1079,12871,12872],{"class":1196},"        migration_type",[1079,12874,1175],{"class":1116},[1079,12876,8990],{"class":1190},[1079,12878,1757],{"class":1116},[1079,12880,12881,12884,12886],{"class":1081,"line":3074},[1079,12882,12883],{"class":1196},"        batch_size",[1079,12885,1175],{"class":1116},[1079,12887,9577],{"class":1190},[1079,12889,12890],{"class":1081,"line":3079},[1079,12891,3557],{"class":1116},[1079,12893,12894],{"class":1081,"line":3089},[1079,12895,1511],{"class":1096},[1079,12897,12898,12900,12902],{"class":1081,"line":3105},[1079,12899,1646],{"class":1092},[1079,12901,1730],{"class":1190},[1079,12903,1733],{"class":1116},[1079,12905,12906,12908,12910,12912,12914,12916,12918,12920],{"class":1081,"line":3122},[1079,12907,1739],{"class":1224},[1079,12909,1742],{"class":1228},[1079,12911,1232],{"class":1224},[1079,12913,1747],{"class":1116},[1079,12915,1750],{"class":1190},[1079,12917,1181],{"class":1116},[1079,12919,1197],{"class":1184},[1079,12921,1757],{"class":1116},[1079,12923,12924,12926,12928,12930,12932,12934],{"class":1081,"line":3136},[1079,12925,1739],{"class":1224},[1079,12927,8990],{"class":1228},[1079,12929,1232],{"class":1224},[1079,12931,1747],{"class":1116},[1079,12933,8954],{"class":1190},[1079,12935,1757],{"class":1116},[1079,12937,12938,12940,12942,12944,12946,12948],{"class":1081,"line":3150},[1079,12939,1739],{"class":1224},[1079,12941,9004],{"class":1228},[1079,12943,1232],{"class":1224},[1079,12945,1747],{"class":1116},[1079,12947,8959],{"class":1190},[1079,12949,1757],{"class":1116},[1079,12951,12952,12954,12956,12958,12960,12962,12964],{"class":1081,"line":3171},[1079,12953,1739],{"class":1224},[1079,12955,1765],{"class":1228},[1079,12957,1232],{"class":1224},[1079,12959,1747],{"class":1116},[1079,12961,1225],{"class":1224},[1079,12963,1774],{"class":1228},[1079,12965,1798],{"class":1224},[1079,12967,12968],{"class":1081,"line":3192},[1079,12969,1804],{"class":1116},[1079,12971,12972],{"class":1081,"line":3213},[1079,12973,1110],{"emptyLinePlaceholder":1109},[1079,12975,12976,12978],{"class":1081,"line":3219},[1079,12977,1117],{"class":1116},[1079,12979,11864],{"class":1120},[1079,12981,12982,12984,12987,12989,12991],{"class":1081,"line":3224},[1079,12983,1128],{"class":1127},[1079,12985,12986],{"class":1120}," process_uploaded_file_view",[1079,12988,1134],{"class":1116},[1079,12990,1667],{"class":1137},[1079,12992,1152],{"class":1116},[1079,12994,12995,12997,12999],{"class":1081,"line":3238},[1079,12996,1159],{"class":1158},[1079,12998,10059],{"class":1162},[1079,13000,1166],{"class":1158},[1079,13002,13003,13006,13008,13010,13012,13015,13017,13019,13021,13023,13026,13028],{"class":1081,"line":3252},[1079,13004,13005],{"class":1096},"    uploaded_file ",[1079,13007,1175],{"class":1116},[1079,13009,11903],{"class":1096},[1079,13011,1181],{"class":1116},[1079,13013,13014],{"class":3524},"FILES",[1079,13016,1181],{"class":1116},[1079,13018,1191],{"class":1190},[1079,13020,1134],{"class":1116},[1079,13022,1232],{"class":1224},[1079,13024,13025],{"class":1228},"file",[1079,13027,1232],{"class":1224},[1079,13029,1204],{"class":1116},[1079,13031,13032,13035,13037,13039,13041,13043,13045,13047,13049,13051,13053,13055,13057,13059,13061,13063],{"class":1081,"line":3274},[1079,13033,13034],{"class":1096},"    processing_type ",[1079,13036,1175],{"class":1116},[1079,13038,11903],{"class":1096},[1079,13040,1181],{"class":1116},[1079,13042,11908],{"class":3524},[1079,13044,1181],{"class":1116},[1079,13046,1191],{"class":1190},[1079,13048,1134],{"class":1116},[1079,13050,1232],{"class":1224},[1079,13052,10285],{"class":1228},[1079,13054,1232],{"class":1224},[1079,13056,1141],{"class":1116},[1079,13058,1225],{"class":1224},[1079,13060,10155],{"class":1228},[1079,13062,1232],{"class":1224},[1079,13064,1204],{"class":1116},[1079,13066,13067],{"class":1081,"line":3293},[1079,13068,1511],{"class":1096},[1079,13070,13071,13073,13075,13078],{"class":1081,"line":3310},[1079,13072,11931],{"class":1092},[1079,13074,10093],{"class":1577},[1079,13076,13077],{"class":1096}," uploaded_file",[1079,13079,3572],{"class":1116},[1079,13081,13082,13084,13086,13088,13090,13092,13094,13096,13098,13101,13103,13105,13107,13109,13111],{"class":1081,"line":3315},[1079,13083,3817],{"class":1092},[1079,13085,1730],{"class":1190},[1079,13087,11946],{"class":1116},[1079,13089,1232],{"class":1224},[1079,13091,6611],{"class":1228},[1079,13093,1232],{"class":1224},[1079,13095,1747],{"class":1116},[1079,13097,1225],{"class":1224},[1079,13099,13100],{"class":1228},"No file uploaded",[1079,13102,1232],{"class":1224},[1079,13104,11964],{"class":1116},[1079,13106,3793],{"class":1196},[1079,13108,1175],{"class":1116},[1079,13110,11971],{"class":1546},[1079,13112,1204],{"class":1116},[1079,13114,13115],{"class":1081,"line":3320},[1079,13116,1511],{"class":1096},[1079,13118,13119],{"class":1081,"line":7490},[1079,13120,13121],{"class":1085},"    # Save uploaded file\n",[1079,13123,13124,13127],{"class":1081,"line":7504},[1079,13125,13126],{"class":1092},"    import",[1079,13128,10069],{"class":1096},[1079,13130,13131,13134,13136,13138,13140,13142],{"class":1081,"line":7525},[1079,13132,13133],{"class":1092},"    from",[1079,13135,1267],{"class":1096},[1079,13137,1181],{"class":1116},[1079,13139,4058],{"class":1096},[1079,13141,1100],{"class":1092},[1079,13143,4063],{"class":1096},[1079,13145,13146],{"class":1081,"line":7530},[1079,13147,1511],{"class":1096},[1079,13149,13150,13153,13155,13157,13159,13161,13163,13166,13168,13170,13172,13175,13177,13179,13182,13184],{"class":1081,"line":7535},[1079,13151,13152],{"class":1096},"    upload_dir ",[1079,13154,1175],{"class":1116},[1079,13156,10096],{"class":1096},[1079,13158,1181],{"class":1116},[1079,13160,10101],{"class":1184},[1079,13162,1181],{"class":1116},[1079,13164,13165],{"class":1190},"join",[1079,13167,1134],{"class":1116},[1079,13169,4099],{"class":1190},[1079,13171,1181],{"class":1116},[1079,13173,13174],{"class":3524},"MEDIA_ROOT",[1079,13176,1141],{"class":1116},[1079,13178,1225],{"class":1224},[1079,13180,13181],{"class":1228},"uploads",[1079,13183,1232],{"class":1224},[1079,13185,1204],{"class":1116},[1079,13187,13188,13191,13193,13196,13198,13201,13203,13206,13208,13210],{"class":1081,"line":7559},[1079,13189,13190],{"class":1096},"    os",[1079,13192,1181],{"class":1116},[1079,13194,13195],{"class":1190},"makedirs",[1079,13197,1134],{"class":1116},[1079,13199,13200],{"class":1190},"upload_dir",[1079,13202,1141],{"class":1116},[1079,13204,13205],{"class":1196}," exist_ok",[1079,13207,1175],{"class":1116},[1079,13209,3476],{"class":1957},[1079,13211,1204],{"class":1116},[1079,13213,13214],{"class":1081,"line":7566},[1079,13215,1511],{"class":1096},[1079,13217,13218,13221,13223,13225,13227,13229,13231,13233,13235,13237,13239,13241,13243,13246],{"class":1081,"line":7572},[1079,13219,13220],{"class":1096},"    file_path ",[1079,13222,1175],{"class":1116},[1079,13224,10096],{"class":1096},[1079,13226,1181],{"class":1116},[1079,13228,10101],{"class":1184},[1079,13230,1181],{"class":1116},[1079,13232,13165],{"class":1190},[1079,13234,1134],{"class":1116},[1079,13236,13200],{"class":1190},[1079,13238,1141],{"class":1116},[1079,13240,13077],{"class":1190},[1079,13242,1181],{"class":1116},[1079,13244,13245],{"class":1184},"name",[1079,13247,1204],{"class":1116},[1079,13249,13250],{"class":1081,"line":7585},[1079,13251,1511],{"class":1096},[1079,13253,13254,13257,13260,13262,13264,13266,13268,13271,13273,13275,13277,13280],{"class":1081,"line":7602},[1079,13255,13256],{"class":1092},"    with",[1079,13258,13259],{"class":1482}," open",[1079,13261,1134],{"class":1116},[1079,13263,10111],{"class":1190},[1079,13265,1141],{"class":1116},[1079,13267,1225],{"class":1224},[1079,13269,13270],{"class":1228},"wb+",[1079,13272,1232],{"class":1224},[1079,13274,1999],{"class":1116},[1079,13276,5212],{"class":1092},[1079,13278,13279],{"class":1096}," destination",[1079,13281,3572],{"class":1116},[1079,13283,13284,13286,13289,13291,13293,13295,13298],{"class":1081,"line":7611},[1079,13285,5332],{"class":1092},[1079,13287,13288],{"class":1096}," chunk ",[1079,13290,1522],{"class":1092},[1079,13292,13077],{"class":1096},[1079,13294,1181],{"class":1116},[1079,13296,13297],{"class":1190},"chunks",[1079,13299,5352],{"class":1116},[1079,13301,13302,13305,13307,13310,13312,13315],{"class":1081,"line":7632},[1079,13303,13304],{"class":1096},"            destination",[1079,13306,1181],{"class":1116},[1079,13308,13309],{"class":1190},"write",[1079,13311,1134],{"class":1116},[1079,13313,13314],{"class":1190},"chunk",[1079,13316,1204],{"class":1116},[1079,13318,13319],{"class":1081,"line":7651},[1079,13320,1511],{"class":1096},[1079,13322,13323],{"class":1081,"line":7676},[1079,13324,13325],{"class":1085},"    # Enqueue processing task\n",[1079,13327,13328,13331,13333],{"class":1081,"line":7682},[1079,13329,13330],{"class":1096},"    options ",[1079,13332,1175],{"class":1116},[1079,13334,6375],{"class":1116},[1079,13336,13337,13339,13341,13343,13345,13347,13349],{"class":1081,"line":7688},[1079,13338,11931],{"class":1092},[1079,13340,10148],{"class":1096},[1079,13342,7734],{"class":1577},[1079,13344,1225],{"class":1224},[1079,13346,10155],{"class":1228},[1079,13348,1232],{"class":1224},[1079,13350,3572],{"class":1116},[1079,13352,13353,13356,13358],{"class":1081,"line":7693},[1079,13354,13355],{"class":1096},"        options ",[1079,13357,1175],{"class":1116},[1079,13359,2048],{"class":1116},[1079,13361,13362,13364,13366,13368,13370,13372,13374,13376,13378,13380,13382,13384,13386,13388,13390,13392,13394,13397],{"class":1081,"line":7721},[1079,13363,2100],{"class":1224},[1079,13365,10393],{"class":1228},[1079,13367,1232],{"class":1224},[1079,13369,1747],{"class":1116},[1079,13371,12816],{"class":3733},[1079,13373,1134],{"class":1116},[1079,13375,1667],{"class":1190},[1079,13377,1181],{"class":1116},[1079,13379,11908],{"class":3524},[1079,13381,1181],{"class":1116},[1079,13383,1191],{"class":1190},[1079,13385,1134],{"class":1116},[1079,13387,1232],{"class":1224},[1079,13389,10393],{"class":1228},[1079,13391,1232],{"class":1224},[1079,13393,1141],{"class":1116},[1079,13395,13396],{"class":1546}," 800",[1079,13398,13399],{"class":1116},")),\n",[1079,13401,13402,13404,13406,13408,13410,13412,13414,13416,13418,13420,13422,13424,13426,13428,13430,13432,13434,13436],{"class":1081,"line":7726},[1079,13403,2100],{"class":1224},[1079,13405,10466],{"class":1228},[1079,13407,1232],{"class":1224},[1079,13409,1747],{"class":1116},[1079,13411,12816],{"class":3733},[1079,13413,1134],{"class":1116},[1079,13415,1667],{"class":1190},[1079,13417,1181],{"class":1116},[1079,13419,11908],{"class":3524},[1079,13421,1181],{"class":1116},[1079,13423,1191],{"class":1190},[1079,13425,1134],{"class":1116},[1079,13427,1232],{"class":1224},[1079,13429,10466],{"class":1228},[1079,13431,1232],{"class":1224},[1079,13433,1141],{"class":1116},[1079,13435,2934],{"class":1546},[1079,13437,12843],{"class":1116},[1079,13439,13440],{"class":1081,"line":7746},[1079,13441,2140],{"class":1116},[1079,13443,13444,13447,13449,13451,13453,13455,13457],{"class":1081,"line":7761},[1079,13445,13446],{"class":1092},"    elif",[1079,13448,10148],{"class":1096},[1079,13450,7734],{"class":1577},[1079,13452,1225],{"class":1224},[1079,13454,10195],{"class":1228},[1079,13456,1232],{"class":1224},[1079,13458,3572],{"class":1116},[1079,13460,13461,13463,13465],{"class":1081,"line":7782},[1079,13462,13355],{"class":1096},[1079,13464,1175],{"class":1116},[1079,13466,2048],{"class":1116},[1079,13468,13469,13471,13473,13475,13477,13479,13481,13483,13485,13487,13489,13491,13493,13495,13497,13499,13501,13504],{"class":1081,"line":7801},[1079,13470,2100],{"class":1224},[1079,13472,10846],{"class":1228},[1079,13474,1232],{"class":1224},[1079,13476,1747],{"class":1116},[1079,13478,12816],{"class":3733},[1079,13480,1134],{"class":1116},[1079,13482,1667],{"class":1190},[1079,13484,1181],{"class":1116},[1079,13486,11908],{"class":3524},[1079,13488,1181],{"class":1116},[1079,13490,1191],{"class":1190},[1079,13492,1134],{"class":1116},[1079,13494,1232],{"class":1224},[1079,13496,10846],{"class":1228},[1079,13498,1232],{"class":1224},[1079,13500,1141],{"class":1116},[1079,13502,13503],{"class":1546}," 85",[1079,13505,12843],{"class":1116},[1079,13507,13508],{"class":1081,"line":7815},[1079,13509,2140],{"class":1116},[1079,13511,13512],{"class":1081,"line":7833},[1079,13513,1511],{"class":1096},[1079,13515,13516,13518,13520,13523,13525,13527],{"class":1081,"line":7847},[1079,13517,1691],{"class":1096},[1079,13519,1175],{"class":1116},[1079,13521,13522],{"class":1096}," file_processing_task",[1079,13524,1181],{"class":1116},[1079,13526,1700],{"class":1190},[1079,13528,3495],{"class":1116},[1079,13530,13531,13534,13536,13538],{"class":1081,"line":7865},[1079,13532,13533],{"class":1196},"        file_path",[1079,13535,1175],{"class":1116},[1079,13537,10111],{"class":1190},[1079,13539,1757],{"class":1116},[1079,13541,13542,13545,13547,13549],{"class":1081,"line":7891},[1079,13543,13544],{"class":1196},"        processing_type",[1079,13546,1175],{"class":1116},[1079,13548,10285],{"class":1190},[1079,13550,1757],{"class":1116},[1079,13552,13553,13556],{"class":1081,"line":7902},[1079,13554,13555],{"class":1577},"        **",[1079,13557,13558],{"class":1190},"options\n",[1079,13560,13561],{"class":1081,"line":7917},[1079,13562,3557],{"class":1116},[1079,13564,13565],{"class":1081,"line":7922},[1079,13566,1511],{"class":1096},[1079,13568,13569,13571,13573],{"class":1081,"line":7934},[1079,13570,1646],{"class":1092},[1079,13572,1730],{"class":1190},[1079,13574,1733],{"class":1116},[1079,13576,13577,13579,13581,13583,13585,13587,13589,13591],{"class":1081,"line":7960},[1079,13578,1739],{"class":1224},[1079,13580,1742],{"class":1228},[1079,13582,1232],{"class":1224},[1079,13584,1747],{"class":1116},[1079,13586,1750],{"class":1190},[1079,13588,1181],{"class":1116},[1079,13590,1197],{"class":1184},[1079,13592,1757],{"class":1116},[1079,13594,13595,13597,13600,13602,13604,13606,13608,13610],{"class":1081,"line":7965},[1079,13596,1739],{"class":1224},[1079,13598,13599],{"class":1228},"file_name",[1079,13601,1232],{"class":1224},[1079,13603,1747],{"class":1116},[1079,13605,13077],{"class":1190},[1079,13607,1181],{"class":1116},[1079,13609,13245],{"class":1184},[1079,13611,1757],{"class":1116},[1079,13613,13614,13616,13618,13620,13622,13624],{"class":1081,"line":7978},[1079,13615,1739],{"class":1224},[1079,13617,10285],{"class":1228},[1079,13619,1232],{"class":1224},[1079,13621,1747],{"class":1116},[1079,13623,10044],{"class":1190},[1079,13625,1757],{"class":1116},[1079,13627,13628,13630,13632,13634,13636,13638,13640],{"class":1081,"line":7997},[1079,13629,1739],{"class":1224},[1079,13631,1765],{"class":1228},[1079,13633,1232],{"class":1224},[1079,13635,1747],{"class":1116},[1079,13637,1225],{"class":1224},[1079,13639,12045],{"class":1228},[1079,13641,1798],{"class":1224},[1079,13643,13644],{"class":1081,"line":8013},[1079,13645,1804],{"class":1116},[1035,13647,13649],{"id":13648},"advanced-enqueueing-patterns","Advanced Enqueueing Patterns",[1069,13651,13653],{"className":1071,"code":13652,"language":1073,"meta":1074,"style":1074},"# Advanced task enqueueing patterns\nfrom django.tasks import group, chain, chord\nfrom datetime import datetime, timedelta\nfrom .tasks import send_email_django_task, process_user_data, generate_report\n\ndef enqueue_with_scheduling():\n    \"\"\"Enqueue tasks with scheduling.\"\"\"\n    \n    # Immediate execution\n    task_result = send_welcome_email.delay(user_id=1)\n    \n    # Delayed execution (countdown in seconds)\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        countdown=300  # Execute in 5 minutes\n    )\n    \n    # Scheduled execution (specific datetime)\n    eta = datetime.now() + timedelta(hours=1)\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        eta=eta\n    )\n    \n    # Periodic execution (requires scheduler)\n    from django.tasks.schedules import crontab\n    \n    # This would typically be in settings or task configuration\n    periodic_task = {\n        'task': 'myapp.tasks.send_welcome_email',\n        'schedule': crontab(hour=9, minute=0),  # Daily at 9 AM\n        'args': [1]\n    }\n\ndef enqueue_with_routing():\n    \"\"\"Enqueue tasks with specific routing.\"\"\"\n    \n    # Route to specific backend\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        backend='redis'\n    )\n    \n    # Route to specific queue\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        queue='high_priority'\n    )\n    \n    # Set task priority\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        priority=9  # Higher number = higher priority\n    )\n\ndef enqueue_task_groups():\n    \"\"\"Enqueue groups of related tasks.\"\"\"\n    \n    # Group - execute tasks in parallel\n    user_ids = [1, 2, 3, 4, 5]\n    \n    job = group(\n        send_welcome_email.s(user_id) for user_id in user_ids\n    )\n    \n    result = job.apply_async()\n    \n    return {\n        'group_id': result.id,\n        'task_count': len(user_ids),\n        'status': 'queued'\n    }\n\ndef enqueue_task_chain():\n    \"\"\"Enqueue chained tasks (sequential execution).\"\"\"\n    \n    # Chain - execute tasks sequentially\n    workflow = chain(\n        process_user_data.s(1, {'first_name': 'John'}),\n        send_welcome_email.s(),  # Will receive result from previous task\n        generate_report.s('user_activity', '2024-01-01:2024-12-31')\n    )\n    \n    result = workflow.apply_async()\n    \n    return {\n        'chain_id': result.id,\n        'status': 'started'\n    }\n\ndef enqueue_task_chord():\n    \"\"\"Enqueue chord (group + callback).\"\"\"\n    \n    # Chord - execute group in parallel, then callback with results\n    user_ids = [1, 2, 3, 4, 5]\n    \n    # Header - tasks to execute in parallel\n    header = group(\n        process_user_data.s(user_id, {'status': 'processed'}) \n        for user_id in user_ids\n    )\n    \n    # Body - callback task that receives all results\n    callback = generate_report.s('batch_processing_summary')\n    \n    # Create chord\n    chord_task = chord(header)(callback)\n    \n    return {\n        'chord_id': chord_task.id,\n        'header_tasks': len(user_ids),\n        'status': 'started'\n    }\n\ndef enqueue_with_error_handling():\n    \"\"\"Enqueue tasks with error handling options.\"\"\"\n    \n    # Task with retry configuration\n    task_result = send_welcome_email.apply_async(\n        args=[1],\n        retry=True,\n        retry_policy={\n            'max_retries': 3,\n            'interval_start': 0,\n            'interval_step': 0.2,\n            'interval_max': 0.2,\n        }\n    )\n    \n    # Task with custom error handling\n    task_result = process_user_data.apply_async(\n        args=[1, {'email': 'new@example.com'}],\n        link_error=handle_user_update_error.s()\n    )\n    \n    return task_result\n\n@task\ndef handle_user_update_error(task_id, error, traceback):\n    \"\"\"Handle user update errors.\"\"\"\n    # Log error\n    logger.error(f\"User update task {task_id} failed: {error}\")\n    \n    # Send notification to admin\n    send_mail(\n        subject='Task Failure Notification',\n        message=f'Task {task_id} failed with error: {error}',\n        from_email='admin@example.com',\n        recipient_list=['admin@example.com']\n    )\n\ndef enqueue_conditional_tasks():\n    \"\"\"Enqueue tasks based on conditions.\"\"\"\n    \n    # Conditional task execution\n    user_id = 1\n    user = User.objects.get(id=user_id)\n    \n    if user.is_active and user.email:\n        # Send welcome email\n        welcome_task = send_welcome_email.delay(user_id)\n        \n        # Chain additional tasks based on user type\n        if user.is_staff:\n            # Staff users get additional setup\n            setup_task = process_user_data.apply_async(\n                args=[user_id, {'role': 'staff'}],\n                link=welcome_task.id\n            )\n        \n        return welcome_task.id\n    \n    return None\n\ndef bulk_enqueue_tasks():\n    \"\"\"Efficiently enqueue multiple tasks.\"\"\"\n    \n    # Bulk task creation\n    user_ids = range(1, 1001)  # 1000 users\n    \n    # Method 1: Individual task enqueueing\n    task_ids = []\n    for user_id in user_ids:\n        task_result = send_welcome_email.delay(user_id)\n        task_ids.append(task_result.id)\n    \n    # Method 2: Batch enqueueing (more efficient)\n    tasks = [\n        send_welcome_email.s(user_id) \n        for user_id in user_ids\n    ]\n    \n    # Enqueue in batches\n    batch_size = 100\n    batch_results = []\n    \n    for i in range(0, len(tasks), batch_size):\n        batch = tasks[i:i + batch_size]\n        batch_group = group(batch)\n        batch_result = batch_group.apply_async()\n        batch_results.append(batch_result.id)\n    \n    return {\n        'total_tasks': len(user_ids),\n        'batch_count': len(batch_results),\n        'batch_ids': batch_results\n    }\n",[1076,13654,13655,13660,13685,13699,13720,13724,13733,13742,13746,13751,13773,13777,13782,13796,13807,13819,13823,13827,13832,13864,13878,13888,13898,13902,13906,13911,13931,13935,13940,13949,13968,14006,14023,14027,14031,14040,14049,14053,14058,14072,14082,14095,14099,14103,14108,14122,14132,14145,14149,14153,14158,14172,14182,14194,14198,14202,14211,14220,14224,14229,14261,14265,14276,14302,14306,14310,14325,14329,14335,14354,14373,14389,14393,14397,14406,14415,14419,14424,14435,14470,14484,14513,14517,14521,14536,14540,14546,14565,14581,14585,14589,14598,14607,14611,14616,14644,14648,14653,14664,14700,14710,14714,14718,14723,14747,14751,14756,14779,14783,14789,14809,14828,14844,14848,14852,14861,14870,14874,14879,14893,14903,14914,14921,14936,14951,14967,14982,14986,14990,14994,14999,15013,15043,15059,15063,15067,15074,15078,15084,15107,15116,15121,15155,15159,15164,15170,15186,15217,15232,15247,15251,15255,15264,15273,15277,15282,15290,15316,15320,15341,15346,15365,15369,15374,15387,15392,15407,15438,15453,15457,15461,15472,15476,15482,15486,15495,15504,15508,15513,15535,15539,15544,15553,15565,15583,15602,15606,15611,15620,15636,15646,15651,15655,15660,15669,15678,15682,15710,15734,15750,15766,15786,15790,15796,15815,15835,15849],{"__ignoreMap":1074},[1079,13656,13657],{"class":1081,"line":1082},[1079,13658,13659],{"class":1085},"# Advanced task enqueueing patterns\n",[1079,13661,13662,13664,13666,13668,13670,13672,13675,13677,13680,13682],{"class":1081,"line":1089},[1079,13663,1093],{"class":1092},[1079,13665,1267],{"class":1096},[1079,13667,1181],{"class":1116},[1079,13669,1272],{"class":1096},[1079,13671,1100],{"class":1092},[1079,13673,13674],{"class":1096}," group",[1079,13676,1141],{"class":1116},[1079,13678,13679],{"class":1096}," chain",[1079,13681,1141],{"class":1116},[1079,13683,13684],{"class":1096}," chord\n",[1079,13686,13687,13689,13691,13693,13695,13697],{"class":1081,"line":1106},[1079,13688,1093],{"class":1092},[1079,13690,6081],{"class":1096},[1079,13692,1100],{"class":1092},[1079,13694,6086],{"class":1096},[1079,13696,1141],{"class":1116},[1079,13698,6091],{"class":1096},[1079,13700,13701,13703,13705,13707,13709,13711,13713,13715,13717],{"class":1081,"line":1113},[1079,13702,1093],{"class":1092},[1079,13704,4829],{"class":1116},[1079,13706,1272],{"class":1096},[1079,13708,1100],{"class":1092},[1079,13710,1298],{"class":1096},[1079,13712,1141],{"class":1116},[1079,13714,5266],{"class":1096},[1079,13716,1141],{"class":1116},[1079,13718,13719],{"class":1096}," generate_report\n",[1079,13721,13722],{"class":1081,"line":1124},[1079,13723,1110],{"emptyLinePlaceholder":1109},[1079,13725,13726,13728,13731],{"class":1081,"line":1155},[1079,13727,1128],{"class":1127},[1079,13729,13730],{"class":1120}," enqueue_with_scheduling",[1079,13732,5352],{"class":1116},[1079,13734,13735,13737,13740],{"class":1081,"line":1169},[1079,13736,1159],{"class":1158},[1079,13738,13739],{"class":1162},"Enqueue tasks with scheduling.",[1079,13741,1166],{"class":1158},[1079,13743,13744],{"class":1081,"line":1207},[1079,13745,1511],{"class":1096},[1079,13747,13748],{"class":1081,"line":1251},[1079,13749,13750],{"class":1085},"    # Immediate execution\n",[1079,13752,13753,13755,13757,13759,13761,13763,13765,13767,13769,13771],{"class":1081,"line":1256},[1079,13754,1691],{"class":1096},[1079,13756,1175],{"class":1116},[1079,13758,4958],{"class":1096},[1079,13760,1181],{"class":1116},[1079,13762,1700],{"class":1190},[1079,13764,1134],{"class":1116},[1079,13766,1138],{"class":1196},[1079,13768,1175],{"class":1116},[1079,13770,1547],{"class":1546},[1079,13772,1204],{"class":1116},[1079,13774,13775],{"class":1081,"line":1262},[1079,13776,1511],{"class":1096},[1079,13778,13779],{"class":1081,"line":1280},[1079,13780,13781],{"class":1085},"    # Delayed execution (countdown in seconds)\n",[1079,13783,13784,13786,13788,13790,13792,13794],{"class":1081,"line":1285},[1079,13785,1691],{"class":1096},[1079,13787,1175],{"class":1116},[1079,13789,4958],{"class":1096},[1079,13791,1181],{"class":1116},[1079,13793,12257],{"class":1190},[1079,13795,3495],{"class":1116},[1079,13797,13798,13801,13803,13805],{"class":1081,"line":1293},[1079,13799,13800],{"class":1196},"        args",[1079,13802,3614],{"class":1116},[1079,13804,1547],{"class":1546},[1079,13806,3271],{"class":1116},[1079,13808,13809,13812,13814,13816],{"class":1081,"line":1315},[1079,13810,13811],{"class":1196},"        countdown",[1079,13813,1175],{"class":1116},[1079,13815,6202],{"class":1546},[1079,13817,13818],{"class":1085},"  # Execute in 5 minutes\n",[1079,13820,13821],{"class":1081,"line":1325},[1079,13822,3557],{"class":1116},[1079,13824,13825],{"class":1081,"line":1352},[1079,13826,1511],{"class":1096},[1079,13828,13829],{"class":1081,"line":1652},[1079,13830,13831],{"class":1085},"    # Scheduled execution (specific datetime)\n",[1079,13833,13834,13837,13839,13841,13843,13845,13847,13850,13853,13855,13858,13860,13862],{"class":1081,"line":1657},[1079,13835,13836],{"class":1096},"    eta ",[1079,13838,1175],{"class":1116},[1079,13840,6086],{"class":1096},[1079,13842,1181],{"class":1116},[1079,13844,7777],{"class":1190},[1079,13846,1951],{"class":1116},[1079,13848,13849],{"class":1577}," +",[1079,13851,13852],{"class":1190}," timedelta",[1079,13854,1134],{"class":1116},[1079,13856,13857],{"class":1196},"hours",[1079,13859,1175],{"class":1116},[1079,13861,1547],{"class":1546},[1079,13863,1204],{"class":1116},[1079,13865,13866,13868,13870,13872,13874,13876],{"class":1081,"line":1672},[1079,13867,1691],{"class":1096},[1079,13869,1175],{"class":1116},[1079,13871,4958],{"class":1096},[1079,13873,1181],{"class":1116},[1079,13875,12257],{"class":1190},[1079,13877,3495],{"class":1116},[1079,13879,13880,13882,13884,13886],{"class":1081,"line":1682},[1079,13881,13800],{"class":1196},[1079,13883,3614],{"class":1116},[1079,13885,1547],{"class":1546},[1079,13887,3271],{"class":1116},[1079,13889,13890,13893,13895],{"class":1081,"line":1688},[1079,13891,13892],{"class":1196},"        eta",[1079,13894,1175],{"class":1116},[1079,13896,13897],{"class":1190},"eta\n",[1079,13899,13900],{"class":1081,"line":1720},[1079,13901,3557],{"class":1116},[1079,13903,13904],{"class":1081,"line":1725},[1079,13905,1511],{"class":1096},[1079,13907,13908],{"class":1081,"line":1736},[1079,13909,13910],{"class":1085},"    # Periodic execution (requires scheduler)\n",[1079,13912,13913,13915,13917,13919,13921,13923,13926,13928],{"class":1081,"line":1760},[1079,13914,13133],{"class":1092},[1079,13916,1267],{"class":1096},[1079,13918,1181],{"class":1116},[1079,13920,3363],{"class":1096},[1079,13922,1181],{"class":1116},[1079,13924,13925],{"class":1096},"schedules ",[1079,13927,1100],{"class":1092},[1079,13929,13930],{"class":1096}," crontab\n",[1079,13932,13933],{"class":1081,"line":1781},[1079,13934,1511],{"class":1096},[1079,13936,13937],{"class":1081,"line":1801},[1079,13938,13939],{"class":1085},"    # This would typically be in settings or task configuration\n",[1079,13941,13942,13945,13947],{"class":1081,"line":1807},[1079,13943,13944],{"class":1096},"    periodic_task ",[1079,13946,1175],{"class":1116},[1079,13948,2048],{"class":1116},[1079,13950,13951,13953,13955,13957,13959,13961,13964,13966],{"class":1081,"line":1812},[1079,13952,1739],{"class":1224},[1079,13954,6136],{"class":1228},[1079,13956,1232],{"class":1224},[1079,13958,1747],{"class":1116},[1079,13960,1225],{"class":1224},[1079,13962,13963],{"class":1228},"myapp.tasks.send_welcome_email",[1079,13965,1232],{"class":1224},[1079,13967,1757],{"class":1116},[1079,13969,13970,13972,13975,13977,13979,13982,13984,13987,13989,13992,13994,13997,13999,14001,14003],{"class":1081,"line":1831},[1079,13971,1739],{"class":1224},[1079,13973,13974],{"class":1228},"schedule",[1079,13976,1232],{"class":1224},[1079,13978,1747],{"class":1116},[1079,13980,13981],{"class":1190}," crontab",[1079,13983,1134],{"class":1116},[1079,13985,13986],{"class":1196},"hour",[1079,13988,1175],{"class":1116},[1079,13990,13991],{"class":1546},"9",[1079,13993,1141],{"class":1116},[1079,13995,13996],{"class":1196}," minute",[1079,13998,1175],{"class":1116},[1079,14000,3440],{"class":1546},[1079,14002,10400],{"class":1116},[1079,14004,14005],{"class":1085},"  # Daily at 9 AM\n",[1079,14007,14008,14010,14013,14015,14017,14019,14021],{"class":1081,"line":1841},[1079,14009,1739],{"class":1224},[1079,14011,14012],{"class":1228},"args",[1079,14014,1232],{"class":1224},[1079,14016,1747],{"class":1116},[1079,14018,1237],{"class":1116},[1079,14020,1547],{"class":1546},[1079,14022,4399],{"class":1116},[1079,14024,14025],{"class":1081,"line":1855},[1079,14026,2145],{"class":1116},[1079,14028,14029],{"class":1081,"line":1876},[1079,14030,1110],{"emptyLinePlaceholder":1109},[1079,14032,14033,14035,14038],{"class":1081,"line":1881},[1079,14034,1128],{"class":1127},[1079,14036,14037],{"class":1120}," enqueue_with_routing",[1079,14039,5352],{"class":1116},[1079,14041,14042,14044,14047],{"class":1081,"line":1890},[1079,14043,1159],{"class":1158},[1079,14045,14046],{"class":1162},"Enqueue tasks with specific routing.",[1079,14048,1166],{"class":1158},[1079,14050,14051],{"class":1081,"line":1905},[1079,14052,1511],{"class":1096},[1079,14054,14055],{"class":1081,"line":1924},[1079,14056,14057],{"class":1085},"    # Route to specific backend\n",[1079,14059,14060,14062,14064,14066,14068,14070],{"class":1081,"line":1963},[1079,14061,1691],{"class":1096},[1079,14063,1175],{"class":1116},[1079,14065,4958],{"class":1096},[1079,14067,1181],{"class":1116},[1079,14069,12257],{"class":1190},[1079,14071,3495],{"class":1116},[1079,14073,14074,14076,14078,14080],{"class":1081,"line":2007},[1079,14075,13800],{"class":1196},[1079,14077,3614],{"class":1116},[1079,14079,1547],{"class":1546},[1079,14081,3271],{"class":1116},[1079,14083,14084,14087,14089,14091,14093],{"class":1081,"line":2421},[1079,14085,14086],{"class":1196},"        backend",[1079,14088,1175],{"class":1116},[1079,14090,1232],{"class":1224},[1079,14092,2464],{"class":1228},[1079,14094,1798],{"class":1224},[1079,14096,14097],{"class":1081,"line":2434},[1079,14098,3557],{"class":1116},[1079,14100,14101],{"class":1081,"line":2453},[1079,14102,1511],{"class":1096},[1079,14104,14105],{"class":1081,"line":2459},[1079,14106,14107],{"class":1085},"    # Route to specific queue\n",[1079,14109,14110,14112,14114,14116,14118,14120],{"class":1081,"line":2473},[1079,14111,1691],{"class":1096},[1079,14113,1175],{"class":1116},[1079,14115,4958],{"class":1096},[1079,14117,1181],{"class":1116},[1079,14119,12257],{"class":1190},[1079,14121,3495],{"class":1116},[1079,14123,14124,14126,14128,14130],{"class":1081,"line":2492},[1079,14125,13800],{"class":1196},[1079,14127,3614],{"class":1116},[1079,14129,1547],{"class":1546},[1079,14131,3271],{"class":1116},[1079,14133,14134,14137,14139,14141,14143],{"class":1081,"line":2505},[1079,14135,14136],{"class":1196},"        queue",[1079,14138,1175],{"class":1116},[1079,14140,1232],{"class":1224},[1079,14142,6822],{"class":1228},[1079,14144,1798],{"class":1224},[1079,14146,14147],{"class":1081,"line":2518},[1079,14148,3557],{"class":1116},[1079,14150,14151],{"class":1081,"line":2538},[1079,14152,1511],{"class":1096},[1079,14154,14155],{"class":1081,"line":2553},[1079,14156,14157],{"class":1085},"    # Set task priority\n",[1079,14159,14160,14162,14164,14166,14168,14170],{"class":1081,"line":2569},[1079,14161,1691],{"class":1096},[1079,14163,1175],{"class":1116},[1079,14165,4958],{"class":1096},[1079,14167,1181],{"class":1116},[1079,14169,12257],{"class":1190},[1079,14171,3495],{"class":1116},[1079,14173,14174,14176,14178,14180],{"class":1081,"line":2575},[1079,14175,13800],{"class":1196},[1079,14177,3614],{"class":1116},[1079,14179,1547],{"class":1546},[1079,14181,3271],{"class":1116},[1079,14183,14184,14187,14189,14191],{"class":1081,"line":2580},[1079,14185,14186],{"class":1196},"        priority",[1079,14188,1175],{"class":1116},[1079,14190,13991],{"class":1546},[1079,14192,14193],{"class":1085},"  # Higher number = higher priority\n",[1079,14195,14196],{"class":1081,"line":2585},[1079,14197,3557],{"class":1116},[1079,14199,14200],{"class":1081,"line":2599},[1079,14201,1110],{"emptyLinePlaceholder":1109},[1079,14203,14204,14206,14209],{"class":1081,"line":2618},[1079,14205,1128],{"class":1127},[1079,14207,14208],{"class":1120}," enqueue_task_groups",[1079,14210,5352],{"class":1116},[1079,14212,14213,14215,14218],{"class":1081,"line":2631},[1079,14214,1159],{"class":1158},[1079,14216,14217],{"class":1162},"Enqueue groups of related tasks.",[1079,14219,1166],{"class":1158},[1079,14221,14222],{"class":1081,"line":2651},[1079,14223,1511],{"class":1096},[1079,14225,14226],{"class":1081,"line":2656},[1079,14227,14228],{"class":1085},"    # Group - execute tasks in parallel\n",[1079,14230,14231,14234,14236,14238,14240,14242,14245,14247,14250,14252,14254,14256,14259],{"class":1081,"line":2661},[1079,14232,14233],{"class":1096},"    user_ids ",[1079,14235,1175],{"class":1116},[1079,14237,1237],{"class":1116},[1079,14239,1547],{"class":1546},[1079,14241,1141],{"class":1116},[1079,14243,14244],{"class":1546}," 2",[1079,14246,1141],{"class":1116},[1079,14248,14249],{"class":1546}," 3",[1079,14251,1141],{"class":1116},[1079,14253,2831],{"class":1546},[1079,14255,1141],{"class":1116},[1079,14257,14258],{"class":1546}," 5",[1079,14260,4399],{"class":1116},[1079,14262,14263],{"class":1081,"line":2666},[1079,14264,1511],{"class":1096},[1079,14266,14267,14270,14272,14274],{"class":1081,"line":2671},[1079,14268,14269],{"class":1096},"    job ",[1079,14271,1175],{"class":1116},[1079,14273,13674],{"class":1190},[1079,14275,3495],{"class":1116},[1079,14277,14278,14281,14283,14286,14288,14290,14292,14295,14297,14299],{"class":1081,"line":2677},[1079,14279,14280],{"class":1190},"        send_welcome_email",[1079,14282,1181],{"class":1116},[1079,14284,14285],{"class":1190},"s",[1079,14287,1134],{"class":1116},[1079,14289,1138],{"class":1190},[1079,14291,1999],{"class":1116},[1079,14293,14294],{"class":1092}," for",[1079,14296,6900],{"class":1190},[1079,14298,1522],{"class":1092},[1079,14300,14301],{"class":1190}," user_ids\n",[1079,14303,14304],{"class":1081,"line":2687},[1079,14305,3557],{"class":1116},[1079,14307,14308],{"class":1081,"line":2720},[1079,14309,1511],{"class":1096},[1079,14311,14312,14314,14316,14319,14321,14323],{"class":1081,"line":2750},[1079,14313,1605],{"class":1096},[1079,14315,1175],{"class":1116},[1079,14317,14318],{"class":1096}," job",[1079,14320,1181],{"class":1116},[1079,14322,12257],{"class":1190},[1079,14324,1852],{"class":1116},[1079,14326,14327],{"class":1081,"line":2780},[1079,14328,1511],{"class":1096},[1079,14330,14331,14333],{"class":1081,"line":2785},[1079,14332,1646],{"class":1092},[1079,14334,2048],{"class":1116},[1079,14336,14337,14339,14342,14344,14346,14348,14350,14352],{"class":1081,"line":2790},[1079,14338,1739],{"class":1224},[1079,14340,14341],{"class":1228},"group_id",[1079,14343,1232],{"class":1224},[1079,14345,1747],{"class":1116},[1079,14347,3788],{"class":1096},[1079,14349,1181],{"class":1116},[1079,14351,1197],{"class":1184},[1079,14353,1757],{"class":1116},[1079,14355,14356,14358,14361,14363,14365,14367,14369,14371],{"class":1081,"line":2796},[1079,14357,1739],{"class":1224},[1079,14359,14360],{"class":1228},"task_count",[1079,14362,1232],{"class":1224},[1079,14364,1747],{"class":1116},[1079,14366,5904],{"class":1482},[1079,14368,1134],{"class":1116},[1079,14370,7400],{"class":1190},[1079,14372,3880],{"class":1116},[1079,14374,14375,14377,14379,14381,14383,14385,14387],{"class":1081,"line":2806},[1079,14376,1739],{"class":1224},[1079,14378,1765],{"class":1228},[1079,14380,1232],{"class":1224},[1079,14382,1747],{"class":1116},[1079,14384,1225],{"class":1224},[1079,14386,12045],{"class":1228},[1079,14388,1798],{"class":1224},[1079,14390,14391],{"class":1081,"line":2819},[1079,14392,2145],{"class":1116},[1079,14394,14395],{"class":1081,"line":2836},[1079,14396,1110],{"emptyLinePlaceholder":1109},[1079,14398,14399,14401,14404],{"class":1081,"line":2853},[1079,14400,1128],{"class":1127},[1079,14402,14403],{"class":1120}," enqueue_task_chain",[1079,14405,5352],{"class":1116},[1079,14407,14408,14410,14413],{"class":1081,"line":2873},[1079,14409,1159],{"class":1158},[1079,14411,14412],{"class":1162},"Enqueue chained tasks (sequential execution).",[1079,14414,1166],{"class":1158},[1079,14416,14417],{"class":1081,"line":2878},[1079,14418,1511],{"class":1096},[1079,14420,14421],{"class":1081,"line":2891},[1079,14422,14423],{"class":1085},"    # Chain - execute tasks sequentially\n",[1079,14425,14426,14429,14431,14433],{"class":1081,"line":2907},[1079,14427,14428],{"class":1096},"    workflow ",[1079,14430,1175],{"class":1116},[1079,14432,13679],{"class":1190},[1079,14434,3495],{"class":1116},[1079,14436,14437,14440,14442,14444,14446,14448,14450,14452,14454,14456,14458,14460,14462,14465,14467],{"class":1081,"line":2923},[1079,14438,14439],{"class":1190},"        process_user_data",[1079,14441,1181],{"class":1116},[1079,14443,14285],{"class":1190},[1079,14445,1134],{"class":1116},[1079,14447,1547],{"class":1546},[1079,14449,1141],{"class":1116},[1079,14451,2699],{"class":1116},[1079,14453,1232],{"class":1224},[1079,14455,5047],{"class":1228},[1079,14457,1232],{"class":1224},[1079,14459,1747],{"class":1116},[1079,14461,1225],{"class":1224},[1079,14463,14464],{"class":1228},"John",[1079,14466,1232],{"class":1224},[1079,14468,14469],{"class":1116},"}),\n",[1079,14471,14472,14474,14476,14478,14481],{"class":1081,"line":2942},[1079,14473,14280],{"class":1190},[1079,14475,1181],{"class":1116},[1079,14477,14285],{"class":1190},[1079,14479,14480],{"class":1116},"(),",[1079,14482,14483],{"class":1085},"  # Will receive result from previous task\n",[1079,14485,14486,14489,14491,14493,14495,14497,14500,14502,14504,14506,14509,14511],{"class":1081,"line":2947},[1079,14487,14488],{"class":1190},"        generate_report",[1079,14490,1181],{"class":1116},[1079,14492,14285],{"class":1190},[1079,14494,1134],{"class":1116},[1079,14496,1232],{"class":1224},[1079,14498,14499],{"class":1228},"user_activity",[1079,14501,1232],{"class":1224},[1079,14503,1141],{"class":1116},[1079,14505,1225],{"class":1224},[1079,14507,14508],{"class":1228},"2024-01-01:2024-12-31",[1079,14510,1232],{"class":1224},[1079,14512,1204],{"class":1116},[1079,14514,14515],{"class":1081,"line":2952},[1079,14516,3557],{"class":1116},[1079,14518,14519],{"class":1081,"line":2957},[1079,14520,1511],{"class":1096},[1079,14522,14523,14525,14527,14530,14532,14534],{"class":1081,"line":2963},[1079,14524,1605],{"class":1096},[1079,14526,1175],{"class":1116},[1079,14528,14529],{"class":1096}," workflow",[1079,14531,1181],{"class":1116},[1079,14533,12257],{"class":1190},[1079,14535,1852],{"class":1116},[1079,14537,14538],{"class":1081,"line":2981},[1079,14539,1511],{"class":1096},[1079,14541,14542,14544],{"class":1081,"line":2986},[1079,14543,1646],{"class":1092},[1079,14545,2048],{"class":1116},[1079,14547,14548,14550,14553,14555,14557,14559,14561,14563],{"class":1081,"line":2992},[1079,14549,1739],{"class":1224},[1079,14551,14552],{"class":1228},"chain_id",[1079,14554,1232],{"class":1224},[1079,14556,1747],{"class":1116},[1079,14558,3788],{"class":1096},[1079,14560,1181],{"class":1116},[1079,14562,1197],{"class":1184},[1079,14564,1757],{"class":1116},[1079,14566,14567,14569,14571,14573,14575,14577,14579],{"class":1081,"line":3006},[1079,14568,1739],{"class":1224},[1079,14570,1765],{"class":1228},[1079,14572,1232],{"class":1224},[1079,14574,1747],{"class":1116},[1079,14576,1225],{"class":1224},[1079,14578,1774],{"class":1228},[1079,14580,1798],{"class":1224},[1079,14582,14583],{"class":1081,"line":3011},[1079,14584,2145],{"class":1116},[1079,14586,14587],{"class":1081,"line":3017},[1079,14588,1110],{"emptyLinePlaceholder":1109},[1079,14590,14591,14593,14596],{"class":1081,"line":3031},[1079,14592,1128],{"class":1127},[1079,14594,14595],{"class":1120}," enqueue_task_chord",[1079,14597,5352],{"class":1116},[1079,14599,14600,14602,14605],{"class":1081,"line":3042},[1079,14601,1159],{"class":1158},[1079,14603,14604],{"class":1162},"Enqueue chord (group + callback).",[1079,14606,1166],{"class":1158},[1079,14608,14609],{"class":1081,"line":3047},[1079,14610,1511],{"class":1096},[1079,14612,14613],{"class":1081,"line":3053},[1079,14614,14615],{"class":1085},"    # Chord - execute group in parallel, then callback with results\n",[1079,14617,14618,14620,14622,14624,14626,14628,14630,14632,14634,14636,14638,14640,14642],{"class":1081,"line":3064},[1079,14619,14233],{"class":1096},[1079,14621,1175],{"class":1116},[1079,14623,1237],{"class":1116},[1079,14625,1547],{"class":1546},[1079,14627,1141],{"class":1116},[1079,14629,14244],{"class":1546},[1079,14631,1141],{"class":1116},[1079,14633,14249],{"class":1546},[1079,14635,1141],{"class":1116},[1079,14637,2831],{"class":1546},[1079,14639,1141],{"class":1116},[1079,14641,14258],{"class":1546},[1079,14643,4399],{"class":1116},[1079,14645,14646],{"class":1081,"line":3074},[1079,14647,1511],{"class":1096},[1079,14649,14650],{"class":1081,"line":3079},[1079,14651,14652],{"class":1085},"    # Header - tasks to execute in parallel\n",[1079,14654,14655,14658,14660,14662],{"class":1081,"line":3089},[1079,14656,14657],{"class":1096},"    header ",[1079,14659,1175],{"class":1116},[1079,14661,13674],{"class":1190},[1079,14663,3495],{"class":1116},[1079,14665,14666,14668,14670,14672,14674,14676,14678,14680,14682,14684,14686,14688,14690,14693,14695,14698],{"class":1081,"line":3105},[1079,14667,14439],{"class":1190},[1079,14669,1181],{"class":1116},[1079,14671,14285],{"class":1190},[1079,14673,1134],{"class":1116},[1079,14675,1138],{"class":1190},[1079,14677,1141],{"class":1116},[1079,14679,2699],{"class":1116},[1079,14681,1232],{"class":1224},[1079,14683,1765],{"class":1228},[1079,14685,1232],{"class":1224},[1079,14687,1747],{"class":1116},[1079,14689,1225],{"class":1224},[1079,14691,14692],{"class":1228},"processed",[1079,14694,1232],{"class":1224},[1079,14696,14697],{"class":1116},"})",[1079,14699,3509],{"class":1190},[1079,14701,14702,14704,14706,14708],{"class":1081,"line":3122},[1079,14703,5332],{"class":1092},[1079,14705,6900],{"class":1190},[1079,14707,1522],{"class":1092},[1079,14709,14301],{"class":1190},[1079,14711,14712],{"class":1081,"line":3136},[1079,14713,3557],{"class":1116},[1079,14715,14716],{"class":1081,"line":3150},[1079,14717,1511],{"class":1096},[1079,14719,14720],{"class":1081,"line":3171},[1079,14721,14722],{"class":1085},"    # Body - callback task that receives all results\n",[1079,14724,14725,14728,14730,14732,14734,14736,14738,14740,14743,14745],{"class":1081,"line":3192},[1079,14726,14727],{"class":1096},"    callback ",[1079,14729,1175],{"class":1116},[1079,14731,8167],{"class":1096},[1079,14733,1181],{"class":1116},[1079,14735,14285],{"class":1190},[1079,14737,1134],{"class":1116},[1079,14739,1232],{"class":1224},[1079,14741,14742],{"class":1228},"batch_processing_summary",[1079,14744,1232],{"class":1224},[1079,14746,1204],{"class":1116},[1079,14748,14749],{"class":1081,"line":3213},[1079,14750,1511],{"class":1096},[1079,14752,14753],{"class":1081,"line":3219},[1079,14754,14755],{"class":1085},"    # Create chord\n",[1079,14757,14758,14761,14763,14766,14768,14771,14774,14777],{"class":1081,"line":3224},[1079,14759,14760],{"class":1096},"    chord_task ",[1079,14762,1175],{"class":1116},[1079,14764,14765],{"class":1190}," chord",[1079,14767,1134],{"class":1116},[1079,14769,14770],{"class":1190},"header",[1079,14772,14773],{"class":1116},")(",[1079,14775,14776],{"class":1190},"callback",[1079,14778,1204],{"class":1116},[1079,14780,14781],{"class":1081,"line":3238},[1079,14782,1511],{"class":1096},[1079,14784,14785,14787],{"class":1081,"line":3252},[1079,14786,1646],{"class":1092},[1079,14788,2048],{"class":1116},[1079,14790,14791,14793,14796,14798,14800,14803,14805,14807],{"class":1081,"line":3274},[1079,14792,1739],{"class":1224},[1079,14794,14795],{"class":1228},"chord_id",[1079,14797,1232],{"class":1224},[1079,14799,1747],{"class":1116},[1079,14801,14802],{"class":1096}," chord_task",[1079,14804,1181],{"class":1116},[1079,14806,1197],{"class":1184},[1079,14808,1757],{"class":1116},[1079,14810,14811,14813,14816,14818,14820,14822,14824,14826],{"class":1081,"line":3293},[1079,14812,1739],{"class":1224},[1079,14814,14815],{"class":1228},"header_tasks",[1079,14817,1232],{"class":1224},[1079,14819,1747],{"class":1116},[1079,14821,5904],{"class":1482},[1079,14823,1134],{"class":1116},[1079,14825,7400],{"class":1190},[1079,14827,3880],{"class":1116},[1079,14829,14830,14832,14834,14836,14838,14840,14842],{"class":1081,"line":3310},[1079,14831,1739],{"class":1224},[1079,14833,1765],{"class":1228},[1079,14835,1232],{"class":1224},[1079,14837,1747],{"class":1116},[1079,14839,1225],{"class":1224},[1079,14841,1774],{"class":1228},[1079,14843,1798],{"class":1224},[1079,14845,14846],{"class":1081,"line":3315},[1079,14847,2145],{"class":1116},[1079,14849,14850],{"class":1081,"line":3320},[1079,14851,1110],{"emptyLinePlaceholder":1109},[1079,14853,14854,14856,14859],{"class":1081,"line":7490},[1079,14855,1128],{"class":1127},[1079,14857,14858],{"class":1120}," enqueue_with_error_handling",[1079,14860,5352],{"class":1116},[1079,14862,14863,14865,14868],{"class":1081,"line":7504},[1079,14864,1159],{"class":1158},[1079,14866,14867],{"class":1162},"Enqueue tasks with error handling options.",[1079,14869,1166],{"class":1158},[1079,14871,14872],{"class":1081,"line":7525},[1079,14873,1511],{"class":1096},[1079,14875,14876],{"class":1081,"line":7530},[1079,14877,14878],{"class":1085},"    # Task with retry configuration\n",[1079,14880,14881,14883,14885,14887,14889,14891],{"class":1081,"line":7535},[1079,14882,1691],{"class":1096},[1079,14884,1175],{"class":1116},[1079,14886,4958],{"class":1096},[1079,14888,1181],{"class":1116},[1079,14890,12257],{"class":1190},[1079,14892,3495],{"class":1116},[1079,14894,14895,14897,14899,14901],{"class":1081,"line":7559},[1079,14896,13800],{"class":1196},[1079,14898,3614],{"class":1116},[1079,14900,1547],{"class":1546},[1079,14902,3271],{"class":1116},[1079,14904,14905,14908,14910,14912],{"class":1081,"line":7566},[1079,14906,14907],{"class":1196},"        retry",[1079,14909,1175],{"class":1116},[1079,14911,3476],{"class":1957},[1079,14913,1757],{"class":1116},[1079,14915,14916,14919],{"class":1081,"line":7572},[1079,14917,14918],{"class":1196},"        retry_policy",[1079,14920,7608],{"class":1116},[1079,14922,14923,14925,14928,14930,14932,14934],{"class":1081,"line":7585},[1079,14924,2100],{"class":1224},[1079,14926,14927],{"class":1228},"max_retries",[1079,14929,1232],{"class":1224},[1079,14931,1747],{"class":1116},[1079,14933,14249],{"class":1546},[1079,14935,1757],{"class":1116},[1079,14937,14938,14940,14943,14945,14947,14949],{"class":1081,"line":7602},[1079,14939,2100],{"class":1224},[1079,14941,14942],{"class":1228},"interval_start",[1079,14944,1232],{"class":1224},[1079,14946,1747],{"class":1116},[1079,14948,2274],{"class":1546},[1079,14950,1757],{"class":1116},[1079,14952,14953,14955,14958,14960,14962,14965],{"class":1081,"line":7611},[1079,14954,2100],{"class":1224},[1079,14956,14957],{"class":1228},"interval_step",[1079,14959,1232],{"class":1224},[1079,14961,1747],{"class":1116},[1079,14963,14964],{"class":1546}," 0.2",[1079,14966,1757],{"class":1116},[1079,14968,14969,14971,14974,14976,14978,14980],{"class":1081,"line":7632},[1079,14970,2100],{"class":1224},[1079,14972,14973],{"class":1228},"interval_max",[1079,14975,1232],{"class":1224},[1079,14977,1747],{"class":1116},[1079,14979,14964],{"class":1546},[1079,14981,1757],{"class":1116},[1079,14983,14984],{"class":1081,"line":7651},[1079,14985,2140],{"class":1116},[1079,14987,14988],{"class":1081,"line":7676},[1079,14989,3557],{"class":1116},[1079,14991,14992],{"class":1081,"line":7682},[1079,14993,1511],{"class":1096},[1079,14995,14996],{"class":1081,"line":7688},[1079,14997,14998],{"class":1085},"    # Task with custom error handling\n",[1079,15000,15001,15003,15005,15007,15009,15011],{"class":1081,"line":7693},[1079,15002,1691],{"class":1096},[1079,15004,1175],{"class":1116},[1079,15006,5266],{"class":1096},[1079,15008,1181],{"class":1116},[1079,15010,12257],{"class":1190},[1079,15012,3495],{"class":1116},[1079,15014,15015,15017,15019,15021,15023,15025,15027,15029,15031,15033,15035,15038,15040],{"class":1081,"line":7721},[1079,15016,13800],{"class":1196},[1079,15018,3614],{"class":1116},[1079,15020,1547],{"class":1546},[1079,15022,1141],{"class":1116},[1079,15024,2699],{"class":1116},[1079,15026,1232],{"class":1224},[1079,15028,1245],{"class":1228},[1079,15030,1232],{"class":1224},[1079,15032,1747],{"class":1116},[1079,15034,1225],{"class":1224},[1079,15036,15037],{"class":1228},"new@example.com",[1079,15039,1232],{"class":1224},[1079,15041,15042],{"class":1116},"}],\n",[1079,15044,15045,15048,15050,15053,15055,15057],{"class":1081,"line":7726},[1079,15046,15047],{"class":1196},"        link_error",[1079,15049,1175],{"class":1116},[1079,15051,15052],{"class":1190},"handle_user_update_error",[1079,15054,1181],{"class":1116},[1079,15056,14285],{"class":1190},[1079,15058,1852],{"class":1116},[1079,15060,15061],{"class":1081,"line":7746},[1079,15062,3557],{"class":1116},[1079,15064,15065],{"class":1081,"line":7761},[1079,15066,1511],{"class":1096},[1079,15068,15069,15071],{"class":1081,"line":7782},[1079,15070,1646],{"class":1092},[1079,15072,15073],{"class":1096}," task_result\n",[1079,15075,15076],{"class":1081,"line":7801},[1079,15077,1110],{"emptyLinePlaceholder":1109},[1079,15079,15080,15082],{"class":1081,"line":7815},[1079,15081,1117],{"class":1116},[1079,15083,1290],{"class":1120},[1079,15085,15086,15088,15091,15093,15095,15097,15100,15102,15105],{"class":1081,"line":7833},[1079,15087,1128],{"class":1127},[1079,15089,15090],{"class":1120}," handle_user_update_error",[1079,15092,1134],{"class":1116},[1079,15094,1742],{"class":1137},[1079,15096,1141],{"class":1116},[1079,15098,15099],{"class":1137}," error",[1079,15101,1141],{"class":1116},[1079,15103,15104],{"class":1137}," traceback",[1079,15106,1152],{"class":1116},[1079,15108,15109,15111,15114],{"class":1081,"line":7847},[1079,15110,1159],{"class":1158},[1079,15112,15113],{"class":1162},"Handle user update errors.",[1079,15115,1166],{"class":1158},[1079,15117,15118],{"class":1081,"line":7865},[1079,15119,15120],{"class":1085},"    # Log error\n",[1079,15122,15123,15126,15128,15130,15132,15134,15137,15139,15141,15143,15145,15147,15149,15151,15153],{"class":1081,"line":7891},[1079,15124,15125],{"class":1096},"    logger",[1079,15127,1181],{"class":1116},[1079,15129,6611],{"class":1190},[1079,15131,1134],{"class":1116},[1079,15133,1488],{"class":1127},[1079,15135,15136],{"class":1228},"\"User update task ",[1079,15138,1495],{"class":1494},[1079,15140,1742],{"class":1190},[1079,15142,1501],{"class":1494},[1079,15144,9744],{"class":1228},[1079,15146,1495],{"class":1494},[1079,15148,6611],{"class":1190},[1079,15150,1501],{"class":1494},[1079,15152,1594],{"class":1228},[1079,15154,1204],{"class":1116},[1079,15156,15157],{"class":1081,"line":7902},[1079,15158,1511],{"class":1096},[1079,15160,15161],{"class":1081,"line":7917},[1079,15162,15163],{"class":1085},"    # Send notification to admin\n",[1079,15165,15166,15168],{"class":1081,"line":7922},[1079,15167,1210],{"class":1190},[1079,15169,3495],{"class":1116},[1079,15171,15172,15175,15177,15179,15182,15184],{"class":1081,"line":7934},[1079,15173,15174],{"class":1196},"        subject",[1079,15176,1175],{"class":1116},[1079,15178,1232],{"class":1224},[1079,15180,15181],{"class":1228},"Task Failure Notification",[1079,15183,1232],{"class":1224},[1079,15185,1757],{"class":1116},[1079,15187,15188,15191,15193,15195,15198,15200,15202,15204,15207,15209,15211,15213,15215],{"class":1081,"line":7960},[1079,15189,15190],{"class":1196},"        message",[1079,15192,1175],{"class":1116},[1079,15194,1488],{"class":1127},[1079,15196,15197],{"class":1228},"'Task ",[1079,15199,1495],{"class":1494},[1079,15201,1742],{"class":1190},[1079,15203,1501],{"class":1494},[1079,15205,15206],{"class":1228}," failed with error: ",[1079,15208,1495],{"class":1494},[1079,15210,6611],{"class":1190},[1079,15212,1501],{"class":1494},[1079,15214,1232],{"class":1228},[1079,15216,1757],{"class":1116},[1079,15218,15219,15222,15224,15226,15228,15230],{"class":1081,"line":7965},[1079,15220,15221],{"class":1196},"        from_email",[1079,15223,1175],{"class":1116},[1079,15225,1232],{"class":1224},[1079,15227,9765],{"class":1228},[1079,15229,1232],{"class":1224},[1079,15231,1757],{"class":1116},[1079,15233,15234,15237,15239,15241,15243,15245],{"class":1081,"line":7978},[1079,15235,15236],{"class":1196},"        recipient_list",[1079,15238,3614],{"class":1116},[1079,15240,1232],{"class":1224},[1079,15242,9765],{"class":1228},[1079,15244,1232],{"class":1224},[1079,15246,4399],{"class":1116},[1079,15248,15249],{"class":1081,"line":7997},[1079,15250,3557],{"class":1116},[1079,15252,15253],{"class":1081,"line":8013},[1079,15254,1110],{"emptyLinePlaceholder":1109},[1079,15256,15257,15259,15262],{"class":1081,"line":8031},[1079,15258,1128],{"class":1127},[1079,15260,15261],{"class":1120}," enqueue_conditional_tasks",[1079,15263,5352],{"class":1116},[1079,15265,15266,15268,15271],{"class":1081,"line":8037},[1079,15267,1159],{"class":1158},[1079,15269,15270],{"class":1162},"Enqueue tasks based on conditions.",[1079,15272,1166],{"class":1158},[1079,15274,15275],{"class":1081,"line":8042},[1079,15276,1511],{"class":1096},[1079,15278,15279],{"class":1081,"line":8055},[1079,15280,15281],{"class":1085},"    # Conditional task execution\n",[1079,15283,15284,15286,15288],{"class":1081,"line":8074},[1079,15285,11898],{"class":1096},[1079,15287,1175],{"class":1116},[1079,15289,5849],{"class":1546},[1079,15291,15292,15294,15296,15298,15300,15302,15304,15306,15308,15310,15312,15314],{"class":1081,"line":8089},[1079,15293,1172],{"class":1096},[1079,15295,1175],{"class":1116},[1079,15297,1178],{"class":1096},[1079,15299,1181],{"class":1116},[1079,15301,1185],{"class":1184},[1079,15303,1181],{"class":1116},[1079,15305,1191],{"class":1190},[1079,15307,1134],{"class":1116},[1079,15309,1197],{"class":1196},[1079,15311,1175],{"class":1116},[1079,15313,1138],{"class":1190},[1079,15315,1204],{"class":1116},[1079,15317,15318],{"class":1081,"line":8109},[1079,15319,1511],{"class":1096},[1079,15321,15322,15324,15326,15328,15331,15333,15335,15337,15339],{"class":1081,"line":8114},[1079,15323,11931],{"class":1092},[1079,15325,5053],{"class":1096},[1079,15327,1181],{"class":1116},[1079,15329,15330],{"class":1184},"is_active",[1079,15332,7110],{"class":1577},[1079,15334,5053],{"class":1096},[1079,15336,1181],{"class":1116},[1079,15338,1245],{"class":1184},[1079,15340,3572],{"class":1116},[1079,15342,15343],{"class":1081,"line":8119},[1079,15344,15345],{"class":1085},"        # Send welcome email\n",[1079,15347,15348,15351,15353,15355,15357,15359,15361,15363],{"class":1081,"line":8127},[1079,15349,15350],{"class":1096},"        welcome_task ",[1079,15352,1175],{"class":1116},[1079,15354,4958],{"class":1096},[1079,15356,1181],{"class":1116},[1079,15358,1700],{"class":1190},[1079,15360,1134],{"class":1116},[1079,15362,1138],{"class":1190},[1079,15364,1204],{"class":1116},[1079,15366,15367],{"class":1081,"line":8132},[1079,15368,5012],{"class":1096},[1079,15370,15371],{"class":1081,"line":8162},[1079,15372,15373],{"class":1085},"        # Chain additional tasks based on user type\n",[1079,15375,15376,15378,15380,15382,15385],{"class":1081,"line":8190},[1079,15377,9018],{"class":1092},[1079,15379,5053],{"class":1096},[1079,15381,1181],{"class":1116},[1079,15383,15384],{"class":1184},"is_staff",[1079,15386,3572],{"class":1116},[1079,15388,15389],{"class":1081,"line":8200},[1079,15390,15391],{"class":1085},"            # Staff users get additional setup\n",[1079,15393,15394,15397,15399,15401,15403,15405],{"class":1081,"line":8207},[1079,15395,15396],{"class":1096},"            setup_task ",[1079,15398,1175],{"class":1116},[1079,15400,5266],{"class":1096},[1079,15402,1181],{"class":1116},[1079,15404,12257],{"class":1190},[1079,15406,3495],{"class":1116},[1079,15408,15409,15412,15414,15416,15418,15420,15422,15425,15427,15429,15431,15434,15436],{"class":1081,"line":8234},[1079,15410,15411],{"class":1196},"                args",[1079,15413,3614],{"class":1116},[1079,15415,1138],{"class":1190},[1079,15417,1141],{"class":1116},[1079,15419,2699],{"class":1116},[1079,15421,1232],{"class":1224},[1079,15423,15424],{"class":1228},"role",[1079,15426,1232],{"class":1224},[1079,15428,1747],{"class":1116},[1079,15430,1225],{"class":1224},[1079,15432,15433],{"class":1228},"staff",[1079,15435,1232],{"class":1224},[1079,15437,15042],{"class":1116},[1079,15439,15440,15443,15445,15448,15450],{"class":1081,"line":8239},[1079,15441,15442],{"class":1196},"                link",[1079,15444,1175],{"class":1116},[1079,15446,15447],{"class":1190},"welcome_task",[1079,15449,1181],{"class":1116},[1079,15451,15452],{"class":1184},"id\n",[1079,15454,15455],{"class":1081,"line":8245},[1079,15456,7685],{"class":1116},[1079,15458,15459],{"class":1081,"line":8256},[1079,15460,5012],{"class":1096},[1079,15462,15463,15465,15468,15470],{"class":1081,"line":8272},[1079,15464,3817],{"class":1092},[1079,15466,15467],{"class":1096}," welcome_task",[1079,15469,1181],{"class":1116},[1079,15471,15452],{"class":1184},[1079,15473,15474],{"class":1081,"line":8298},[1079,15475,1511],{"class":1096},[1079,15477,15478,15480],{"class":1081,"line":8303},[1079,15479,1646],{"class":1092},[1079,15481,2004],{"class":1957},[1079,15483,15484],{"class":1081,"line":8308},[1079,15485,1110],{"emptyLinePlaceholder":1109},[1079,15487,15488,15490,15493],{"class":1081,"line":8323},[1079,15489,1128],{"class":1127},[1079,15491,15492],{"class":1120}," bulk_enqueue_tasks",[1079,15494,5352],{"class":1116},[1079,15496,15497,15499,15502],{"class":1081,"line":8345},[1079,15498,1159],{"class":1158},[1079,15500,15501],{"class":1162},"Efficiently enqueue multiple tasks.",[1079,15503,1166],{"class":1158},[1079,15505,15506],{"class":1081,"line":8350},[1079,15507,1511],{"class":1096},[1079,15509,15510],{"class":1081,"line":8356},[1079,15511,15512],{"class":1085},"    # Bulk task creation\n",[1079,15514,15515,15517,15519,15521,15523,15525,15527,15530,15532],{"class":1081,"line":8402},[1079,15516,14233],{"class":1096},[1079,15518,1175],{"class":1116},[1079,15520,1525],{"class":1482},[1079,15522,1134],{"class":1116},[1079,15524,1547],{"class":1546},[1079,15526,1141],{"class":1116},[1079,15528,15529],{"class":1546}," 1001",[1079,15531,1999],{"class":1116},[1079,15533,15534],{"class":1085},"  # 1000 users\n",[1079,15536,15537],{"class":1081,"line":8407},[1079,15538,1511],{"class":1096},[1079,15540,15541],{"class":1081,"line":8430},[1079,15542,15543],{"class":1085},"    # Method 1: Individual task enqueueing\n",[1079,15545,15546,15549,15551],{"class":1081,"line":8441},[1079,15547,15548],{"class":1096},"    task_ids ",[1079,15550,1175],{"class":1116},[1079,15552,6960],{"class":1116},[1079,15554,15555,15557,15559,15561,15563],{"class":1081,"line":8456},[1079,15556,1516],{"class":1092},[1079,15558,6900],{"class":1096},[1079,15560,1522],{"class":1092},[1079,15562,6842],{"class":1096},[1079,15564,3572],{"class":1116},[1079,15566,15567,15569,15571,15573,15575,15577,15579,15581],{"class":1081,"line":8463},[1079,15568,12248],{"class":1096},[1079,15570,1175],{"class":1116},[1079,15572,4958],{"class":1096},[1079,15574,1181],{"class":1116},[1079,15576,1700],{"class":1190},[1079,15578,1134],{"class":1116},[1079,15580,1138],{"class":1190},[1079,15582,1204],{"class":1116},[1079,15584,15585,15588,15590,15592,15594,15596,15598,15600],{"class":1081,"line":8482},[1079,15586,15587],{"class":1096},"        task_ids",[1079,15589,1181],{"class":1116},[1079,15591,7068],{"class":1190},[1079,15593,1134],{"class":1116},[1079,15595,1988],{"class":1190},[1079,15597,1181],{"class":1116},[1079,15599,1197],{"class":1184},[1079,15601,1204],{"class":1116},[1079,15603,15604],{"class":1081,"line":8501},[1079,15605,1511],{"class":1096},[1079,15607,15608],{"class":1081,"line":8527},[1079,15609,15610],{"class":1085},"    # Method 2: Batch enqueueing (more efficient)\n",[1079,15612,15613,15616,15618],{"class":1081,"line":8532},[1079,15614,15615],{"class":1096},"    tasks ",[1079,15617,1175],{"class":1116},[1079,15619,3596],{"class":1116},[1079,15621,15622,15624,15626,15628,15630,15632,15634],{"class":1081,"line":8537},[1079,15623,14280],{"class":1096},[1079,15625,1181],{"class":1116},[1079,15627,14285],{"class":1190},[1079,15629,1134],{"class":1116},[1079,15631,1138],{"class":1190},[1079,15633,1999],{"class":1116},[1079,15635,3509],{"class":1096},[1079,15637,15638,15640,15642,15644],{"class":1081,"line":8542},[1079,15639,5332],{"class":1092},[1079,15641,6900],{"class":1096},[1079,15643,1522],{"class":1092},[1079,15645,14301],{"class":1096},[1079,15647,15648],{"class":1081,"line":8559},[1079,15649,15650],{"class":1116},"    ]\n",[1079,15652,15653],{"class":1081,"line":8564},[1079,15654,1511],{"class":1096},[1079,15656,15657],{"class":1081,"line":8570},[1079,15658,15659],{"class":1085},"    # Enqueue in batches\n",[1079,15661,15662,15664,15666],{"class":1081,"line":8588},[1079,15663,12811],{"class":1096},[1079,15665,1175],{"class":1116},[1079,15667,15668],{"class":1546}," 100\n",[1079,15670,15671,15674,15676],{"class":1081,"line":8593},[1079,15672,15673],{"class":1096},"    batch_results ",[1079,15675,1175],{"class":1116},[1079,15677,6960],{"class":1116},[1079,15679,15680],{"class":1081,"line":8599},[1079,15681,1511],{"class":1096},[1079,15683,15684,15686,15688,15690,15692,15694,15696,15698,15700,15702,15704,15706,15708],{"class":1081,"line":8606},[1079,15685,1516],{"class":1092},[1079,15687,1519],{"class":1096},[1079,15689,1522],{"class":1092},[1079,15691,1525],{"class":1482},[1079,15693,1134],{"class":1116},[1079,15695,3440],{"class":1546},[1079,15697,1141],{"class":1116},[1079,15699,5904],{"class":1482},[1079,15701,1134],{"class":1116},[1079,15703,3363],{"class":1190},[1079,15705,10400],{"class":1116},[1079,15707,8959],{"class":1190},[1079,15709,1152],{"class":1116},[1079,15711,15712,15715,15717,15720,15722,15724,15726,15728,15730,15732],{"class":1081,"line":8628},[1079,15713,15714],{"class":1096},"        batch ",[1079,15716,1175],{"class":1116},[1079,15718,15719],{"class":1096}," tasks",[1079,15721,7940],{"class":1116},[1079,15723,1574],{"class":1096},[1079,15725,1747],{"class":1116},[1079,15727,9245],{"class":1096},[1079,15729,1578],{"class":1577},[1079,15731,8959],{"class":1096},[1079,15733,4399],{"class":1116},[1079,15735,15736,15739,15741,15743,15745,15748],{"class":1081,"line":8651},[1079,15737,15738],{"class":1096},"        batch_group ",[1079,15740,1175],{"class":1116},[1079,15742,13674],{"class":1190},[1079,15744,1134],{"class":1116},[1079,15746,15747],{"class":1190},"batch",[1079,15749,1204],{"class":1116},[1079,15751,15752,15755,15757,15760,15762,15764],{"class":1081,"line":8667},[1079,15753,15754],{"class":1096},"        batch_result ",[1079,15756,1175],{"class":1116},[1079,15758,15759],{"class":1096}," batch_group",[1079,15761,1181],{"class":1116},[1079,15763,12257],{"class":1190},[1079,15765,1852],{"class":1116},[1079,15767,15768,15771,15773,15775,15777,15780,15782,15784],{"class":1081,"line":8682},[1079,15769,15770],{"class":1096},"        batch_results",[1079,15772,1181],{"class":1116},[1079,15774,7068],{"class":1190},[1079,15776,1134],{"class":1116},[1079,15778,15779],{"class":1190},"batch_result",[1079,15781,1181],{"class":1116},[1079,15783,1197],{"class":1184},[1079,15785,1204],{"class":1116},[1079,15787,15788],{"class":1081,"line":8687},[1079,15789,1511],{"class":1096},[1079,15791,15792,15794],{"class":1081,"line":8692},[1079,15793,1646],{"class":1092},[1079,15795,2048],{"class":1116},[1079,15797,15798,15800,15803,15805,15807,15809,15811,15813],{"class":1081,"line":8699},[1079,15799,1739],{"class":1224},[1079,15801,15802],{"class":1228},"total_tasks",[1079,15804,1232],{"class":1224},[1079,15806,1747],{"class":1116},[1079,15808,5904],{"class":1482},[1079,15810,1134],{"class":1116},[1079,15812,7400],{"class":1190},[1079,15814,3880],{"class":1116},[1079,15816,15817,15819,15822,15824,15826,15828,15830,15833],{"class":1081,"line":8716},[1079,15818,1739],{"class":1224},[1079,15820,15821],{"class":1228},"batch_count",[1079,15823,1232],{"class":1224},[1079,15825,1747],{"class":1116},[1079,15827,5904],{"class":1482},[1079,15829,1134],{"class":1116},[1079,15831,15832],{"class":1190},"batch_results",[1079,15834,3880],{"class":1116},[1079,15836,15837,15839,15842,15844,15846],{"class":1081,"line":8731},[1079,15838,1739],{"class":1224},[1079,15840,15841],{"class":1228},"batch_ids",[1079,15843,1232],{"class":1224},[1079,15845,1747],{"class":1116},[1079,15847,15848],{"class":1096}," batch_results\n",[1079,15850,15851],{"class":1081,"line":8751},[1079,15852,2145],{"class":1116},[1030,15854,15856],{"id":15855},"task-results","Task Results",[1035,15858,15860],{"id":15859},"retrieving-task-results","Retrieving Task Results",[1069,15862,15864],{"className":1071,"code":15863,"language":1073,"meta":1074,"style":1074},"# views.py - Task result handling\nfrom django.tasks import get_task_backend\nfrom django.http import JsonResponse\nfrom django.shortcuts import get_object_or_404\n\ndef get_task_status_view(request, task_id):\n    \"\"\"Get task status and result.\"\"\"\n    backend = get_task_backend()\n    \n    try:\n        task_result = backend.get_result(task_id)\n        \n        response_data = {\n            'task_id': task_id,\n            'status': task_result.status,\n            'ready': task_result.ready(),\n            'successful': task_result.successful() if task_result.ready() else None,\n            'failed': task_result.failed() if task_result.ready() else None,\n        }\n        \n        # Add result if task is complete\n        if task_result.ready():\n            if task_result.successful():\n                response_data['result'] = task_result.result\n            else:\n                response_data['error'] = str(task_result.result)\n                response_data['traceback'] = task_result.traceback\n        \n        # Add progress information if available\n        if hasattr(task_result, 'info') and task_result.info:\n            response_data['progress'] = task_result.info\n        \n        return JsonResponse(response_data)\n    \n    except Exception as e:\n        return JsonResponse({\n            'task_id': task_id,\n            'error': f'Failed to retrieve task status: {str(e)}'\n        }, status=500)\n\ndef wait_for_task_result_view(request, task_id):\n    \"\"\"Wait for task result with timeout.\"\"\"\n    timeout = int(request.GET.get('timeout', 30))\n    \n    backend = get_task_backend()\n    \n    try:\n        task_result = backend.get_result(task_id)\n        \n        # Wait for result with timeout\n        result = task_result.get(timeout=timeout)\n        \n        return JsonResponse({\n            'task_id': task_id,\n            'status': 'completed',\n            'result': result\n        })\n    \n    except TimeoutError:\n        return JsonResponse({\n            'task_id': task_id,\n            'status': 'timeout',\n            'message': f'Task did not complete within {timeout} seconds'\n        }, status=408)\n    \n    except Exception as e:\n        return JsonResponse({\n            'task_id': task_id,\n            'status': 'error',\n            'error': str(e)\n        }, status=500)\n\ndef revoke_task_view(request, task_id):\n    \"\"\"Revoke/cancel a task.\"\"\"\n    backend = get_task_backend()\n    \n    try:\n        # Revoke the task\n        backend.revoke(task_id, terminate=True)\n        \n        return JsonResponse({\n            'task_id': task_id,\n            'status': 'revoked',\n            'message': 'Task has been cancelled'\n        })\n    \n    except Exception as e:\n        return JsonResponse({\n            'task_id': task_id,\n            'error': f'Failed to revoke task: {str(e)}'\n        }, status=500)\n\ndef list_active_tasks_view(request):\n    \"\"\"List all active tasks.\"\"\"\n    backend = get_task_backend()\n    \n    try:\n        # Get active tasks (implementation depends on backend)\n        active_tasks = backend.get_active_tasks()\n        \n        tasks_data = []\n        for task_info in active_tasks:\n            tasks_data.append({\n                'task_id': task_info['id'],\n                'name': task_info['name'],\n                'status': task_info['status'],\n                'started_at': task_info.get('started_at'),\n                'worker': task_info.get('worker')\n            })\n        \n        return JsonResponse({\n            'active_tasks': tasks_data,\n            'count': len(tasks_data)\n        })\n    \n    except Exception as e:\n        return JsonResponse({\n            'error': f'Failed to retrieve active tasks: {str(e)}'\n        }, status=500)\n",[1076,15865,15866,15871,15885,15899,15913,15917,15934,15943,15953,15957,15963,15981,15985,15994,16008,16026,16045,16079,16113,16117,16121,16126,16138,16150,16175,16182,16210,16234,16238,16243,16273,16297,16301,16314,16318,16330,16338,16352,16381,16395,16399,16416,16425,16461,16465,16475,16479,16485,16503,16507,16512,16535,16539,16547,16561,16580,16592,16596,16600,16609,16617,16631,16649,16673,16686,16690,16702,16710,16724,16742,16760,16772,16776,16793,16802,16812,16816,16822,16827,16851,16855,16863,16877,16896,16913,16917,16921,16933,16941,16955,16984,16996,17000,17013,17022,17032,17036,17042,17047,17063,17067,17076,17090,17101,17124,17146,17168,17195,17222,17226,17230,17238,17254,17273,17277,17281,17293,17301,17330],{"__ignoreMap":1074},[1079,15867,15868],{"class":1081,"line":1082},[1079,15869,15870],{"class":1085},"# views.py - Task result handling\n",[1079,15872,15873,15875,15877,15879,15881,15883],{"class":1081,"line":1089},[1079,15874,1093],{"class":1092},[1079,15876,1267],{"class":1096},[1079,15878,1181],{"class":1116},[1079,15880,1272],{"class":1096},[1079,15882,1100],{"class":1092},[1079,15884,1416],{"class":1096},[1079,15886,15887,15889,15891,15893,15895,15897],{"class":1081,"line":1106},[1079,15888,1093],{"class":1092},[1079,15890,1267],{"class":1096},[1079,15892,1181],{"class":1116},[1079,15894,1427],{"class":1096},[1079,15896,1100],{"class":1092},[1079,15898,1432],{"class":1096},[1079,15900,15901,15903,15905,15907,15909,15911],{"class":1081,"line":1113},[1079,15902,1093],{"class":1092},[1079,15904,1267],{"class":1096},[1079,15906,1181],{"class":1116},[1079,15908,11738],{"class":1096},[1079,15910,1100],{"class":1092},[1079,15912,11743],{"class":1096},[1079,15914,15915],{"class":1081,"line":1124},[1079,15916,1110],{"emptyLinePlaceholder":1109},[1079,15918,15919,15921,15924,15926,15928,15930,15932],{"class":1081,"line":1155},[1079,15920,1128],{"class":1127},[1079,15922,15923],{"class":1120}," get_task_status_view",[1079,15925,1134],{"class":1116},[1079,15927,1667],{"class":1137},[1079,15929,1141],{"class":1116},[1079,15931,1826],{"class":1137},[1079,15933,1152],{"class":1116},[1079,15935,15936,15938,15941],{"class":1081,"line":1169},[1079,15937,1159],{"class":1158},[1079,15939,15940],{"class":1162},"Get task status and result.",[1079,15942,1166],{"class":1158},[1079,15944,15945,15947,15949,15951],{"class":1081,"line":1207},[1079,15946,1844],{"class":1096},[1079,15948,1175],{"class":1116},[1079,15950,1849],{"class":1190},[1079,15952,1852],{"class":1116},[1079,15954,15955],{"class":1081,"line":1251},[1079,15956,1511],{"class":1096},[1079,15958,15959,15961],{"class":1081,"line":1256},[1079,15960,4978],{"class":1092},[1079,15962,3572],{"class":1116},[1079,15964,15965,15967,15969,15971,15973,15975,15977,15979],{"class":1081,"line":1262},[1079,15966,12248],{"class":1096},[1079,15968,1175],{"class":1116},[1079,15970,1862],{"class":1096},[1079,15972,1181],{"class":1116},[1079,15974,1867],{"class":1190},[1079,15976,1134],{"class":1116},[1079,15978,1742],{"class":1190},[1079,15980,1204],{"class":1116},[1079,15982,15983],{"class":1081,"line":1280},[1079,15984,5012],{"class":1096},[1079,15986,15987,15990,15992],{"class":1081,"line":1285},[1079,15988,15989],{"class":1096},"        response_data ",[1079,15991,1175],{"class":1116},[1079,15993,2048],{"class":1116},[1079,15995,15996,15998,16000,16002,16004,16006],{"class":1081,"line":1293},[1079,15997,2100],{"class":1224},[1079,15999,1742],{"class":1228},[1079,16001,1232],{"class":1224},[1079,16003,1747],{"class":1116},[1079,16005,1826],{"class":1096},[1079,16007,1757],{"class":1116},[1079,16009,16010,16012,16014,16016,16018,16020,16022,16024],{"class":1081,"line":1315},[1079,16011,2100],{"class":1224},[1079,16013,1765],{"class":1228},[1079,16015,1232],{"class":1224},[1079,16017,1747],{"class":1116},[1079,16019,1750],{"class":1096},[1079,16021,1181],{"class":1116},[1079,16023,1765],{"class":1184},[1079,16025,1757],{"class":1116},[1079,16027,16028,16030,16032,16034,16036,16038,16040,16042],{"class":1081,"line":1325},[1079,16029,2100],{"class":1224},[1079,16031,1948],{"class":1228},[1079,16033,1232],{"class":1224},[1079,16035,1747],{"class":1116},[1079,16037,1750],{"class":1096},[1079,16039,1181],{"class":1116},[1079,16041,1948],{"class":1190},[1079,16043,16044],{"class":1116},"(),\n",[1079,16046,16047,16049,16051,16053,16055,16057,16059,16061,16063,16065,16067,16069,16071,16073,16075,16077],{"class":1081,"line":1352},[1079,16048,2100],{"class":1224},[1079,16050,7480],{"class":1228},[1079,16052,1232],{"class":1224},[1079,16054,1747],{"class":1116},[1079,16056,1750],{"class":1096},[1079,16058,1181],{"class":1116},[1079,16060,7480],{"class":1190},[1079,16062,1951],{"class":1116},[1079,16064,1941],{"class":1092},[1079,16066,1750],{"class":1096},[1079,16068,1181],{"class":1116},[1079,16070,1948],{"class":1190},[1079,16072,1951],{"class":1116},[1079,16074,1954],{"class":1092},[1079,16076,1958],{"class":1957},[1079,16078,1757],{"class":1116},[1079,16080,16081,16083,16085,16087,16089,16091,16093,16095,16097,16099,16101,16103,16105,16107,16109,16111],{"class":1081,"line":1652},[1079,16082,2100],{"class":1224},[1079,16084,7495],{"class":1228},[1079,16086,1232],{"class":1224},[1079,16088,1747],{"class":1116},[1079,16090,1750],{"class":1096},[1079,16092,1181],{"class":1116},[1079,16094,7495],{"class":1190},[1079,16096,1951],{"class":1116},[1079,16098,1941],{"class":1092},[1079,16100,1750],{"class":1096},[1079,16102,1181],{"class":1116},[1079,16104,1948],{"class":1190},[1079,16106,1951],{"class":1116},[1079,16108,1954],{"class":1092},[1079,16110,1958],{"class":1957},[1079,16112,1757],{"class":1116},[1079,16114,16115],{"class":1081,"line":1657},[1079,16116,2140],{"class":1116},[1079,16118,16119],{"class":1081,"line":1672},[1079,16120,5012],{"class":1096},[1079,16122,16123],{"class":1081,"line":1682},[1079,16124,16125],{"class":1085},"        # Add result if task is complete\n",[1079,16127,16128,16130,16132,16134,16136],{"class":1081,"line":1688},[1079,16129,9018],{"class":1092},[1079,16131,1750],{"class":1096},[1079,16133,1181],{"class":1116},[1079,16135,1948],{"class":1190},[1079,16137,5352],{"class":1116},[1079,16139,16140,16142,16144,16146,16148],{"class":1081,"line":1720},[1079,16141,5357],{"class":1092},[1079,16143,1750],{"class":1096},[1079,16145,1181],{"class":1116},[1079,16147,7480],{"class":1190},[1079,16149,5352],{"class":1116},[1079,16151,16152,16155,16157,16159,16161,16163,16166,16168,16170,16172],{"class":1081,"line":1725},[1079,16153,16154],{"class":1096},"                response_data",[1079,16156,7940],{"class":1116},[1079,16158,1232],{"class":1224},[1079,16160,1639],{"class":1228},[1079,16162,1232],{"class":1224},[1079,16164,16165],{"class":1116},"]",[1079,16167,2045],{"class":1116},[1079,16169,1750],{"class":1096},[1079,16171,1181],{"class":1116},[1079,16173,16174],{"class":1184},"result\n",[1079,16176,16177,16180],{"class":1081,"line":1736},[1079,16178,16179],{"class":1092},"            else",[1079,16181,3572],{"class":1116},[1079,16183,16184,16186,16188,16190,16192,16194,16196,16198,16200,16202,16204,16206,16208],{"class":1081,"line":1760},[1079,16185,16154],{"class":1096},[1079,16187,7940],{"class":1116},[1079,16189,1232],{"class":1224},[1079,16191,6611],{"class":1228},[1079,16193,1232],{"class":1224},[1079,16195,16165],{"class":1116},[1079,16197,2045],{"class":1116},[1079,16199,8100],{"class":3733},[1079,16201,1134],{"class":1116},[1079,16203,1988],{"class":1190},[1079,16205,1181],{"class":1116},[1079,16207,1639],{"class":1184},[1079,16209,1204],{"class":1116},[1079,16211,16212,16214,16216,16218,16221,16223,16225,16227,16229,16231],{"class":1081,"line":1781},[1079,16213,16154],{"class":1096},[1079,16215,7940],{"class":1116},[1079,16217,1232],{"class":1224},[1079,16219,16220],{"class":1228},"traceback",[1079,16222,1232],{"class":1224},[1079,16224,16165],{"class":1116},[1079,16226,2045],{"class":1116},[1079,16228,1750],{"class":1096},[1079,16230,1181],{"class":1116},[1079,16232,16233],{"class":1184},"traceback\n",[1079,16235,16236],{"class":1081,"line":1801},[1079,16237,5012],{"class":1096},[1079,16239,16240],{"class":1081,"line":1807},[1079,16241,16242],{"class":1085},"        # Add progress information if available\n",[1079,16244,16245,16247,16249,16251,16253,16255,16257,16259,16261,16263,16265,16267,16269,16271],{"class":1081,"line":1812},[1079,16246,9018],{"class":1092},[1079,16248,1983],{"class":1482},[1079,16250,1134],{"class":1116},[1079,16252,1988],{"class":1190},[1079,16254,1141],{"class":1116},[1079,16256,1225],{"class":1224},[1079,16258,6544],{"class":1228},[1079,16260,1232],{"class":1224},[1079,16262,1999],{"class":1116},[1079,16264,7110],{"class":1577},[1079,16266,1750],{"class":1096},[1079,16268,1181],{"class":1116},[1079,16270,6544],{"class":1184},[1079,16272,3572],{"class":1116},[1079,16274,16275,16278,16280,16282,16284,16286,16288,16290,16292,16294],{"class":1081,"line":1831},[1079,16276,16277],{"class":1096},"            response_data",[1079,16279,7940],{"class":1116},[1079,16281,1232],{"class":1224},[1079,16283,1968],{"class":1228},[1079,16285,1232],{"class":1224},[1079,16287,16165],{"class":1116},[1079,16289,2045],{"class":1116},[1079,16291,1750],{"class":1096},[1079,16293,1181],{"class":1116},[1079,16295,16296],{"class":1184},"info\n",[1079,16298,16299],{"class":1081,"line":1841},[1079,16300,5012],{"class":1096},[1079,16302,16303,16305,16307,16309,16312],{"class":1081,"line":1855},[1079,16304,3817],{"class":1092},[1079,16306,1730],{"class":1190},[1079,16308,1134],{"class":1116},[1079,16310,16311],{"class":1190},"response_data",[1079,16313,1204],{"class":1116},[1079,16315,16316],{"class":1081,"line":1876},[1079,16317,1511],{"class":1096},[1079,16319,16320,16322,16324,16326,16328],{"class":1081,"line":1881},[1079,16321,5175],{"class":1092},[1079,16323,5209],{"class":3733},[1079,16325,5212],{"class":1092},[1079,16327,5215],{"class":1096},[1079,16329,3572],{"class":1116},[1079,16331,16332,16334,16336],{"class":1081,"line":1890},[1079,16333,3817],{"class":1092},[1079,16335,1730],{"class":1190},[1079,16337,1733],{"class":1116},[1079,16339,16340,16342,16344,16346,16348,16350],{"class":1081,"line":1905},[1079,16341,2100],{"class":1224},[1079,16343,1742],{"class":1228},[1079,16345,1232],{"class":1224},[1079,16347,1747],{"class":1116},[1079,16349,1826],{"class":1190},[1079,16351,1757],{"class":1116},[1079,16353,16354,16356,16358,16360,16362,16364,16367,16369,16371,16373,16375,16377,16379],{"class":1081,"line":1924},[1079,16355,2100],{"class":1224},[1079,16357,6611],{"class":1228},[1079,16359,1232],{"class":1224},[1079,16361,1747],{"class":1116},[1079,16363,1610],{"class":1127},[1079,16365,16366],{"class":1228},"'Failed to retrieve task status: ",[1079,16368,1495],{"class":1494},[1079,16370,5236],{"class":3733},[1079,16372,1134],{"class":1116},[1079,16374,5241],{"class":1190},[1079,16376,1999],{"class":1116},[1079,16378,1501],{"class":1494},[1079,16380,1798],{"class":1228},[1079,16382,16383,16386,16388,16390,16393],{"class":1081,"line":1963},[1079,16384,16385],{"class":1116},"        },",[1079,16387,3793],{"class":1196},[1079,16389,1175],{"class":1116},[1079,16391,16392],{"class":1546},"500",[1079,16394,1204],{"class":1116},[1079,16396,16397],{"class":1081,"line":2007},[1079,16398,1110],{"emptyLinePlaceholder":1109},[1079,16400,16401,16403,16406,16408,16410,16412,16414],{"class":1081,"line":2421},[1079,16402,1128],{"class":1127},[1079,16404,16405],{"class":1120}," wait_for_task_result_view",[1079,16407,1134],{"class":1116},[1079,16409,1667],{"class":1137},[1079,16411,1141],{"class":1116},[1079,16413,1826],{"class":1137},[1079,16415,1152],{"class":1116},[1079,16417,16418,16420,16423],{"class":1081,"line":2434},[1079,16419,1159],{"class":1158},[1079,16421,16422],{"class":1162},"Wait for task result with timeout.",[1079,16424,1166],{"class":1158},[1079,16426,16427,16430,16432,16434,16436,16438,16440,16442,16444,16446,16448,16450,16452,16454,16456,16459],{"class":1081,"line":2453},[1079,16428,16429],{"class":1096},"    timeout ",[1079,16431,1175],{"class":1116},[1079,16433,12816],{"class":3733},[1079,16435,1134],{"class":1116},[1079,16437,1667],{"class":1190},[1079,16439,1181],{"class":1116},[1079,16441,12783],{"class":3524},[1079,16443,1181],{"class":1116},[1079,16445,1191],{"class":1190},[1079,16447,1134],{"class":1116},[1079,16449,1232],{"class":1224},[1079,16451,2858],{"class":1228},[1079,16453,1232],{"class":1224},[1079,16455,1141],{"class":1116},[1079,16457,16458],{"class":1546}," 30",[1079,16460,12843],{"class":1116},[1079,16462,16463],{"class":1081,"line":2459},[1079,16464,1511],{"class":1096},[1079,16466,16467,16469,16471,16473],{"class":1081,"line":2473},[1079,16468,1844],{"class":1096},[1079,16470,1175],{"class":1116},[1079,16472,1849],{"class":1190},[1079,16474,1852],{"class":1116},[1079,16476,16477],{"class":1081,"line":2492},[1079,16478,1511],{"class":1096},[1079,16480,16481,16483],{"class":1081,"line":2505},[1079,16482,4978],{"class":1092},[1079,16484,3572],{"class":1116},[1079,16486,16487,16489,16491,16493,16495,16497,16499,16501],{"class":1081,"line":2518},[1079,16488,12248],{"class":1096},[1079,16490,1175],{"class":1116},[1079,16492,1862],{"class":1096},[1079,16494,1181],{"class":1116},[1079,16496,1867],{"class":1190},[1079,16498,1134],{"class":1116},[1079,16500,1742],{"class":1190},[1079,16502,1204],{"class":1116},[1079,16504,16505],{"class":1081,"line":2538},[1079,16506,5012],{"class":1096},[1079,16508,16509],{"class":1081,"line":2553},[1079,16510,16511],{"class":1085},"        # Wait for result with timeout\n",[1079,16513,16514,16517,16519,16521,16523,16525,16527,16529,16531,16533],{"class":1081,"line":2569},[1079,16515,16516],{"class":1096},"        result ",[1079,16518,1175],{"class":1116},[1079,16520,1750],{"class":1096},[1079,16522,1181],{"class":1116},[1079,16524,1191],{"class":1190},[1079,16526,1134],{"class":1116},[1079,16528,2858],{"class":1196},[1079,16530,1175],{"class":1116},[1079,16532,2858],{"class":1190},[1079,16534,1204],{"class":1116},[1079,16536,16537],{"class":1081,"line":2575},[1079,16538,5012],{"class":1096},[1079,16540,16541,16543,16545],{"class":1081,"line":2580},[1079,16542,3817],{"class":1092},[1079,16544,1730],{"class":1190},[1079,16546,1733],{"class":1116},[1079,16548,16549,16551,16553,16555,16557,16559],{"class":1081,"line":2585},[1079,16550,2100],{"class":1224},[1079,16552,1742],{"class":1228},[1079,16554,1232],{"class":1224},[1079,16556,1747],{"class":1116},[1079,16558,1826],{"class":1190},[1079,16560,1757],{"class":1116},[1079,16562,16563,16565,16567,16569,16571,16573,16576,16578],{"class":1081,"line":2599},[1079,16564,2100],{"class":1224},[1079,16566,1765],{"class":1228},[1079,16568,1232],{"class":1224},[1079,16570,1747],{"class":1116},[1079,16572,1225],{"class":1224},[1079,16574,16575],{"class":1228},"completed",[1079,16577,1232],{"class":1224},[1079,16579,1757],{"class":1116},[1079,16581,16582,16584,16586,16588,16590],{"class":1081,"line":2618},[1079,16583,2100],{"class":1224},[1079,16585,1639],{"class":1228},[1079,16587,1232],{"class":1224},[1079,16589,1747],{"class":1116},[1079,16591,1649],{"class":1190},[1079,16593,16594],{"class":1081,"line":2631},[1079,16595,12374],{"class":1116},[1079,16597,16598],{"class":1081,"line":2651},[1079,16599,1511],{"class":1096},[1079,16601,16602,16604,16607],{"class":1081,"line":2656},[1079,16603,5175],{"class":1092},[1079,16605,16606],{"class":3733}," TimeoutError",[1079,16608,3572],{"class":1116},[1079,16610,16611,16613,16615],{"class":1081,"line":2661},[1079,16612,3817],{"class":1092},[1079,16614,1730],{"class":1190},[1079,16616,1733],{"class":1116},[1079,16618,16619,16621,16623,16625,16627,16629],{"class":1081,"line":2666},[1079,16620,2100],{"class":1224},[1079,16622,1742],{"class":1228},[1079,16624,1232],{"class":1224},[1079,16626,1747],{"class":1116},[1079,16628,1826],{"class":1190},[1079,16630,1757],{"class":1116},[1079,16632,16633,16635,16637,16639,16641,16643,16645,16647],{"class":1081,"line":2671},[1079,16634,2100],{"class":1224},[1079,16636,1765],{"class":1228},[1079,16638,1232],{"class":1224},[1079,16640,1747],{"class":1116},[1079,16642,1225],{"class":1224},[1079,16644,2858],{"class":1228},[1079,16646,1232],{"class":1224},[1079,16648,1757],{"class":1116},[1079,16650,16651,16653,16655,16657,16659,16661,16664,16666,16668,16670],{"class":1081,"line":2677},[1079,16652,2100],{"class":1224},[1079,16654,1786],{"class":1228},[1079,16656,1232],{"class":1224},[1079,16658,1747],{"class":1116},[1079,16660,1610],{"class":1127},[1079,16662,16663],{"class":1228},"'Task did not complete within ",[1079,16665,1495],{"class":1494},[1079,16667,2858],{"class":1190},[1079,16669,1501],{"class":1494},[1079,16671,16672],{"class":1228}," seconds'\n",[1079,16674,16675,16677,16679,16681,16684],{"class":1081,"line":2687},[1079,16676,16385],{"class":1116},[1079,16678,3793],{"class":1196},[1079,16680,1175],{"class":1116},[1079,16682,16683],{"class":1546},"408",[1079,16685,1204],{"class":1116},[1079,16687,16688],{"class":1081,"line":2720},[1079,16689,1511],{"class":1096},[1079,16691,16692,16694,16696,16698,16700],{"class":1081,"line":2750},[1079,16693,5175],{"class":1092},[1079,16695,5209],{"class":3733},[1079,16697,5212],{"class":1092},[1079,16699,5215],{"class":1096},[1079,16701,3572],{"class":1116},[1079,16703,16704,16706,16708],{"class":1081,"line":2780},[1079,16705,3817],{"class":1092},[1079,16707,1730],{"class":1190},[1079,16709,1733],{"class":1116},[1079,16711,16712,16714,16716,16718,16720,16722],{"class":1081,"line":2785},[1079,16713,2100],{"class":1224},[1079,16715,1742],{"class":1228},[1079,16717,1232],{"class":1224},[1079,16719,1747],{"class":1116},[1079,16721,1826],{"class":1190},[1079,16723,1757],{"class":1116},[1079,16725,16726,16728,16730,16732,16734,16736,16738,16740],{"class":1081,"line":2790},[1079,16727,2100],{"class":1224},[1079,16729,1765],{"class":1228},[1079,16731,1232],{"class":1224},[1079,16733,1747],{"class":1116},[1079,16735,1225],{"class":1224},[1079,16737,6611],{"class":1228},[1079,16739,1232],{"class":1224},[1079,16741,1757],{"class":1116},[1079,16743,16744,16746,16748,16750,16752,16754,16756,16758],{"class":1081,"line":2796},[1079,16745,2100],{"class":1224},[1079,16747,6611],{"class":1228},[1079,16749,1232],{"class":1224},[1079,16751,1747],{"class":1116},[1079,16753,8100],{"class":3733},[1079,16755,1134],{"class":1116},[1079,16757,5241],{"class":1190},[1079,16759,1204],{"class":1116},[1079,16761,16762,16764,16766,16768,16770],{"class":1081,"line":2806},[1079,16763,16385],{"class":1116},[1079,16765,3793],{"class":1196},[1079,16767,1175],{"class":1116},[1079,16769,16392],{"class":1546},[1079,16771,1204],{"class":1116},[1079,16773,16774],{"class":1081,"line":2819},[1079,16775,1110],{"emptyLinePlaceholder":1109},[1079,16777,16778,16780,16783,16785,16787,16789,16791],{"class":1081,"line":2836},[1079,16779,1128],{"class":1127},[1079,16781,16782],{"class":1120}," revoke_task_view",[1079,16784,1134],{"class":1116},[1079,16786,1667],{"class":1137},[1079,16788,1141],{"class":1116},[1079,16790,1826],{"class":1137},[1079,16792,1152],{"class":1116},[1079,16794,16795,16797,16800],{"class":1081,"line":2853},[1079,16796,1159],{"class":1158},[1079,16798,16799],{"class":1162},"Revoke/cancel a task.",[1079,16801,1166],{"class":1158},[1079,16803,16804,16806,16808,16810],{"class":1081,"line":2873},[1079,16805,1844],{"class":1096},[1079,16807,1175],{"class":1116},[1079,16809,1849],{"class":1190},[1079,16811,1852],{"class":1116},[1079,16813,16814],{"class":1081,"line":2878},[1079,16815,1511],{"class":1096},[1079,16817,16818,16820],{"class":1081,"line":2891},[1079,16819,4978],{"class":1092},[1079,16821,3572],{"class":1116},[1079,16823,16824],{"class":1081,"line":2907},[1079,16825,16826],{"class":1085},"        # Revoke the task\n",[1079,16828,16829,16831,16833,16836,16838,16840,16842,16845,16847,16849],{"class":1081,"line":2923},[1079,16830,14086],{"class":1096},[1079,16832,1181],{"class":1116},[1079,16834,16835],{"class":1190},"revoke",[1079,16837,1134],{"class":1116},[1079,16839,1742],{"class":1190},[1079,16841,1141],{"class":1116},[1079,16843,16844],{"class":1196}," terminate",[1079,16846,1175],{"class":1116},[1079,16848,3476],{"class":1957},[1079,16850,1204],{"class":1116},[1079,16852,16853],{"class":1081,"line":2942},[1079,16854,5012],{"class":1096},[1079,16856,16857,16859,16861],{"class":1081,"line":2947},[1079,16858,3817],{"class":1092},[1079,16860,1730],{"class":1190},[1079,16862,1733],{"class":1116},[1079,16864,16865,16867,16869,16871,16873,16875],{"class":1081,"line":2952},[1079,16866,2100],{"class":1224},[1079,16868,1742],{"class":1228},[1079,16870,1232],{"class":1224},[1079,16872,1747],{"class":1116},[1079,16874,1826],{"class":1190},[1079,16876,1757],{"class":1116},[1079,16878,16879,16881,16883,16885,16887,16889,16892,16894],{"class":1081,"line":2957},[1079,16880,2100],{"class":1224},[1079,16882,1765],{"class":1228},[1079,16884,1232],{"class":1224},[1079,16886,1747],{"class":1116},[1079,16888,1225],{"class":1224},[1079,16890,16891],{"class":1228},"revoked",[1079,16893,1232],{"class":1224},[1079,16895,1757],{"class":1116},[1079,16897,16898,16900,16902,16904,16906,16908,16911],{"class":1081,"line":2963},[1079,16899,2100],{"class":1224},[1079,16901,1786],{"class":1228},[1079,16903,1232],{"class":1224},[1079,16905,1747],{"class":1116},[1079,16907,1225],{"class":1224},[1079,16909,16910],{"class":1228},"Task has been cancelled",[1079,16912,1798],{"class":1224},[1079,16914,16915],{"class":1081,"line":2981},[1079,16916,12374],{"class":1116},[1079,16918,16919],{"class":1081,"line":2986},[1079,16920,1511],{"class":1096},[1079,16922,16923,16925,16927,16929,16931],{"class":1081,"line":2992},[1079,16924,5175],{"class":1092},[1079,16926,5209],{"class":3733},[1079,16928,5212],{"class":1092},[1079,16930,5215],{"class":1096},[1079,16932,3572],{"class":1116},[1079,16934,16935,16937,16939],{"class":1081,"line":3006},[1079,16936,3817],{"class":1092},[1079,16938,1730],{"class":1190},[1079,16940,1733],{"class":1116},[1079,16942,16943,16945,16947,16949,16951,16953],{"class":1081,"line":3011},[1079,16944,2100],{"class":1224},[1079,16946,1742],{"class":1228},[1079,16948,1232],{"class":1224},[1079,16950,1747],{"class":1116},[1079,16952,1826],{"class":1190},[1079,16954,1757],{"class":1116},[1079,16956,16957,16959,16961,16963,16965,16967,16970,16972,16974,16976,16978,16980,16982],{"class":1081,"line":3017},[1079,16958,2100],{"class":1224},[1079,16960,6611],{"class":1228},[1079,16962,1232],{"class":1224},[1079,16964,1747],{"class":1116},[1079,16966,1610],{"class":1127},[1079,16968,16969],{"class":1228},"'Failed to revoke task: ",[1079,16971,1495],{"class":1494},[1079,16973,5236],{"class":3733},[1079,16975,1134],{"class":1116},[1079,16977,5241],{"class":1190},[1079,16979,1999],{"class":1116},[1079,16981,1501],{"class":1494},[1079,16983,1798],{"class":1228},[1079,16985,16986,16988,16990,16992,16994],{"class":1081,"line":3031},[1079,16987,16385],{"class":1116},[1079,16989,3793],{"class":1196},[1079,16991,1175],{"class":1116},[1079,16993,16392],{"class":1546},[1079,16995,1204],{"class":1116},[1079,16997,16998],{"class":1081,"line":3042},[1079,16999,1110],{"emptyLinePlaceholder":1109},[1079,17001,17002,17004,17007,17009,17011],{"class":1081,"line":3047},[1079,17003,1128],{"class":1127},[1079,17005,17006],{"class":1120}," list_active_tasks_view",[1079,17008,1134],{"class":1116},[1079,17010,1667],{"class":1137},[1079,17012,1152],{"class":1116},[1079,17014,17015,17017,17020],{"class":1081,"line":3053},[1079,17016,1159],{"class":1158},[1079,17018,17019],{"class":1162},"List all active tasks.",[1079,17021,1166],{"class":1158},[1079,17023,17024,17026,17028,17030],{"class":1081,"line":3064},[1079,17025,1844],{"class":1096},[1079,17027,1175],{"class":1116},[1079,17029,1849],{"class":1190},[1079,17031,1852],{"class":1116},[1079,17033,17034],{"class":1081,"line":3074},[1079,17035,1511],{"class":1096},[1079,17037,17038,17040],{"class":1081,"line":3079},[1079,17039,4978],{"class":1092},[1079,17041,3572],{"class":1116},[1079,17043,17044],{"class":1081,"line":3089},[1079,17045,17046],{"class":1085},"        # Get active tasks (implementation depends on backend)\n",[1079,17048,17049,17052,17054,17056,17058,17061],{"class":1081,"line":3105},[1079,17050,17051],{"class":1096},"        active_tasks ",[1079,17053,1175],{"class":1116},[1079,17055,1862],{"class":1096},[1079,17057,1181],{"class":1116},[1079,17059,17060],{"class":1190},"get_active_tasks",[1079,17062,1852],{"class":1116},[1079,17064,17065],{"class":1081,"line":3122},[1079,17066,5012],{"class":1096},[1079,17068,17069,17072,17074],{"class":1081,"line":3136},[1079,17070,17071],{"class":1096},"        tasks_data ",[1079,17073,1175],{"class":1116},[1079,17075,6960],{"class":1116},[1079,17077,17078,17080,17083,17085,17088],{"class":1081,"line":3150},[1079,17079,5332],{"class":1092},[1079,17081,17082],{"class":1096}," task_info ",[1079,17084,1522],{"class":1092},[1079,17086,17087],{"class":1096}," active_tasks",[1079,17089,3572],{"class":1116},[1079,17091,17092,17095,17097,17099],{"class":1081,"line":3171},[1079,17093,17094],{"class":1096},"            tasks_data",[1079,17096,1181],{"class":1116},[1079,17098,7068],{"class":1190},[1079,17100,1733],{"class":1116},[1079,17102,17103,17105,17107,17109,17111,17114,17116,17118,17120,17122],{"class":1081,"line":3192},[1079,17104,2228],{"class":1224},[1079,17106,1742],{"class":1228},[1079,17108,1232],{"class":1224},[1079,17110,1747],{"class":1116},[1079,17112,17113],{"class":1190}," task_info",[1079,17115,7940],{"class":1116},[1079,17117,1232],{"class":1224},[1079,17119,1197],{"class":1228},[1079,17121,1232],{"class":1224},[1079,17123,3271],{"class":1116},[1079,17125,17126,17128,17130,17132,17134,17136,17138,17140,17142,17144],{"class":1081,"line":3213},[1079,17127,2228],{"class":1224},[1079,17129,13245],{"class":1228},[1079,17131,1232],{"class":1224},[1079,17133,1747],{"class":1116},[1079,17135,17113],{"class":1190},[1079,17137,7940],{"class":1116},[1079,17139,1232],{"class":1224},[1079,17141,13245],{"class":1228},[1079,17143,1232],{"class":1224},[1079,17145,3271],{"class":1116},[1079,17147,17148,17150,17152,17154,17156,17158,17160,17162,17164,17166],{"class":1081,"line":3219},[1079,17149,2228],{"class":1224},[1079,17151,1765],{"class":1228},[1079,17153,1232],{"class":1224},[1079,17155,1747],{"class":1116},[1079,17157,17113],{"class":1190},[1079,17159,7940],{"class":1116},[1079,17161,1232],{"class":1224},[1079,17163,1765],{"class":1228},[1079,17165,1232],{"class":1224},[1079,17167,3271],{"class":1116},[1079,17169,17170,17172,17175,17177,17179,17181,17183,17185,17187,17189,17191,17193],{"class":1081,"line":3224},[1079,17171,2228],{"class":1224},[1079,17173,17174],{"class":1228},"started_at",[1079,17176,1232],{"class":1224},[1079,17178,1747],{"class":1116},[1079,17180,17113],{"class":1190},[1079,17182,1181],{"class":1116},[1079,17184,1191],{"class":1190},[1079,17186,1134],{"class":1116},[1079,17188,1232],{"class":1224},[1079,17190,17174],{"class":1228},[1079,17192,1232],{"class":1224},[1079,17194,3880],{"class":1116},[1079,17196,17197,17199,17202,17204,17206,17208,17210,17212,17214,17216,17218,17220],{"class":1081,"line":3238},[1079,17198,2228],{"class":1224},[1079,17200,17201],{"class":1228},"worker",[1079,17203,1232],{"class":1224},[1079,17205,1747],{"class":1116},[1079,17207,17113],{"class":1190},[1079,17209,1181],{"class":1116},[1079,17211,1191],{"class":1190},[1079,17213,1134],{"class":1116},[1079,17215,1232],{"class":1224},[1079,17217,17201],{"class":1228},[1079,17219,1232],{"class":1224},[1079,17221,1204],{"class":1116},[1079,17223,17224],{"class":1081,"line":3252},[1079,17225,8034],{"class":1116},[1079,17227,17228],{"class":1081,"line":3274},[1079,17229,5012],{"class":1096},[1079,17231,17232,17234,17236],{"class":1081,"line":3293},[1079,17233,3817],{"class":1092},[1079,17235,1730],{"class":1190},[1079,17237,1733],{"class":1116},[1079,17239,17240,17242,17245,17247,17249,17252],{"class":1081,"line":3310},[1079,17241,2100],{"class":1224},[1079,17243,17244],{"class":1228},"active_tasks",[1079,17246,1232],{"class":1224},[1079,17248,1747],{"class":1116},[1079,17250,17251],{"class":1190}," tasks_data",[1079,17253,1757],{"class":1116},[1079,17255,17256,17258,17260,17262,17264,17266,17268,17271],{"class":1081,"line":3315},[1079,17257,2100],{"class":1224},[1079,17259,9179],{"class":1228},[1079,17261,1232],{"class":1224},[1079,17263,1747],{"class":1116},[1079,17265,5904],{"class":1482},[1079,17267,1134],{"class":1116},[1079,17269,17270],{"class":1190},"tasks_data",[1079,17272,1204],{"class":1116},[1079,17274,17275],{"class":1081,"line":3320},[1079,17276,12374],{"class":1116},[1079,17278,17279],{"class":1081,"line":7490},[1079,17280,1511],{"class":1096},[1079,17282,17283,17285,17287,17289,17291],{"class":1081,"line":7504},[1079,17284,5175],{"class":1092},[1079,17286,5209],{"class":3733},[1079,17288,5212],{"class":1092},[1079,17290,5215],{"class":1096},[1079,17292,3572],{"class":1116},[1079,17294,17295,17297,17299],{"class":1081,"line":7525},[1079,17296,3817],{"class":1092},[1079,17298,1730],{"class":1190},[1079,17300,1733],{"class":1116},[1079,17302,17303,17305,17307,17309,17311,17313,17316,17318,17320,17322,17324,17326,17328],{"class":1081,"line":7530},[1079,17304,2100],{"class":1224},[1079,17306,6611],{"class":1228},[1079,17308,1232],{"class":1224},[1079,17310,1747],{"class":1116},[1079,17312,1610],{"class":1127},[1079,17314,17315],{"class":1228},"'Failed to retrieve active tasks: ",[1079,17317,1495],{"class":1494},[1079,17319,5236],{"class":3733},[1079,17321,1134],{"class":1116},[1079,17323,5241],{"class":1190},[1079,17325,1999],{"class":1116},[1079,17327,1501],{"class":1494},[1079,17329,1798],{"class":1228},[1079,17331,17332,17334,17336,17338,17340],{"class":1081,"line":7535},[1079,17333,16385],{"class":1116},[1079,17335,3793],{"class":1196},[1079,17337,1175],{"class":1116},[1079,17339,16392],{"class":1546},[1079,17341,1204],{"class":1116},[1035,17343,17345],{"id":17344},"task-result-management","Task Result Management",[1069,17347,17349],{"className":1071,"code":17348,"language":1073,"meta":1074,"style":1074},"# Task result utilities and management\nfrom django.tasks import get_task_backend\nfrom django.core.management.base import BaseCommand\nfrom datetime import datetime, timedelta\nimport json\n\nclass TaskResultManager:\n    \"\"\"Utility class for managing task results.\"\"\"\n    \n    def __init__(self, backend_name='default'):\n        self.backend = get_task_backend(backend_name)\n    \n    def get_task_info(self, task_id):\n        \"\"\"Get comprehensive task information.\"\"\"\n        try:\n            task_result = self.backend.get_result(task_id)\n            \n            info = {\n                'task_id': task_id,\n                'status': task_result.status,\n                'ready': task_result.ready(),\n                'successful': task_result.successful() if task_result.ready() else None,\n                'failed': task_result.failed() if task_result.ready() else None,\n                'date_created': getattr(task_result, 'date_created', None),\n                'date_done': getattr(task_result, 'date_done', None),\n            }\n            \n            if task_result.ready():\n                if task_result.successful():\n                    info['result'] = task_result.result\n                else:\n                    info['error'] = str(task_result.result)\n                    info['traceback'] = getattr(task_result, 'traceback', None)\n            \n            return info\n        \n        except Exception as e:\n            return {\n                'task_id': task_id,\n                'error': f'Failed to get task info: {str(e)}'\n            }\n    \n    def wait_for_multiple_tasks(self, task_ids, timeout=60):\n        \"\"\"Wait for multiple tasks to complete.\"\"\"\n        results = {}\n        \n        for task_id in task_ids:\n            try:\n                task_result = self.backend.get_result(task_id)\n                result = task_result.get(timeout=timeout)\n                results[task_id] = {\n                    'status': 'completed',\n                    'result': result\n                }\n            except TimeoutError:\n                results[task_id] = {\n                    'status': 'timeout',\n                    'error': f'Task did not complete within {timeout} seconds'\n                }\n            except Exception as e:\n                results[task_id] = {\n                    'status': 'error',\n                    'error': str(e)\n                }\n        \n        return results\n    \n    def cleanup_old_results(self, days_old=7):\n        \"\"\"Clean up old task results.\"\"\"\n        cutoff_date = datetime.now() - timedelta(days=days_old)\n        \n        # Implementation depends on backend\n        if hasattr(self.backend, 'cleanup_results'):\n            return self.backend.cleanup_results(cutoff_date)\n        else:\n            # Manual cleanup for database backend\n            from django.tasks.models import TaskResult\n            \n            old_results = TaskResult.objects.filter(\n                date_created__lt=cutoff_date\n            )\n            \n            count = old_results.count()\n            old_results.delete()\n            \n            return count\n    \n    def get_task_statistics(self):\n        \"\"\"Get task execution statistics.\"\"\"\n        # Implementation depends on backend capabilities\n        stats = {\n            'total_tasks': 0,\n            'completed_tasks': 0,\n            'failed_tasks': 0,\n            'pending_tasks': 0,\n            'average_execution_time': 0\n        }\n        \n        # This would need to be implemented based on your backend\n        return stats\n\n# Management command for task result cleanup\nclass Command(BaseCommand):\n    \"\"\"Management command to clean up old task results.\"\"\"\n    \n    help = 'Clean up old task results'\n    \n    def add_arguments(self, parser):\n        parser.add_argument(\n            '--days',\n            type=int,\n            default=7,\n            help='Number of days to keep results (default: 7)'\n        )\n        \n        parser.add_argument(\n            '--backend',\n            type=str,\n            default='default',\n            help='Task backend to clean up (default: default)'\n        )\n    \n    def handle(self, *args, **options):\n        days = options['days']\n        backend_name = options['backend']\n        \n        manager = TaskResultManager(backend_name)\n        \n        try:\n            cleaned_count = manager.cleanup_old_results(days)\n            \n            self.stdout.write(\n                self.style.SUCCESS(\n                    f'Successfully cleaned up {cleaned_count} old task results'\n                )\n            )\n        \n        except Exception as e:\n            self.stdout.write(\n                self.style.ERROR(f'Failed to clean up task results: {e}')\n            )\n\n# Task monitoring utilities\nclass TaskMonitor:\n    \"\"\"Monitor task execution and performance.\"\"\"\n    \n    def __init__(self):\n        self.backend = get_task_backend()\n    \n    def monitor_task_progress(self, task_id, callback=None):\n        \"\"\"Monitor task progress with optional callback.\"\"\"\n        task_result = self.backend.get_result(task_id)\n        \n        while not task_result.ready():\n            # Get current status\n            status_info = {\n                'task_id': task_id,\n                'status': task_result.status,\n                'timestamp': datetime.now().isoformat()\n            }\n            \n            # Add progress info if available\n            if hasattr(task_result, 'info') and task_result.info:\n                status_info['progress'] = task_result.info\n            \n            # Call callback if provided\n            if callback:\n                callback(status_info)\n            \n            # Wait before checking again\n            time.sleep(1)\n        \n        # Task completed\n        final_status = {\n            'task_id': task_id,\n            'status': task_result.status,\n            'completed': True,\n            'successful': task_result.successful(),\n            'timestamp': datetime.now().isoformat()\n        }\n        \n        if task_result.successful():\n            final_status['result'] = task_result.result\n        else:\n            final_status['error'] = str(task_result.result)\n        \n        if callback:\n            callback(final_status)\n        \n        return final_status\n    \n    def get_worker_statistics(self):\n        \"\"\"Get worker performance statistics.\"\"\"\n        # This would depend on your backend implementation\n        return {\n            'active_workers': 0,\n            'total_tasks_processed': 0,\n            'average_task_duration': 0,\n            'worker_load': {}\n        }\n\n# WebSocket integration for real-time task updates\nfrom channels.generic.websocket import AsyncWebsocketConsumer\nimport json\n\nclass TaskProgressConsumer(AsyncWebsocketConsumer):\n    \"\"\"WebSocket consumer for real-time task progress updates.\"\"\"\n    \n    async def connect(self):\n        \"\"\"Handle WebSocket connection.\"\"\"\n        self.task_id = self.scope['url_route']['kwargs']['task_id']\n        self.group_name = f'task_{self.task_id}'\n        \n        # Join task group\n        await self.channel_layer.group_add(\n            self.group_name,\n            self.channel_name\n        )\n        \n        await self.accept()\n        \n        # Send initial task status\n        await self.send_task_status()\n    \n    async def disconnect(self, close_code):\n        \"\"\"Handle WebSocket disconnection.\"\"\"\n        await self.channel_layer.group_discard(\n            self.group_name,\n            self.channel_name\n        )\n    \n    async def send_task_status(self):\n        \"\"\"Send current task status.\"\"\"\n        manager = TaskResultManager()\n        task_info = manager.get_task_info(self.task_id)\n        \n        await self.send(text_data=json.dumps({\n            'type': 'task_status',\n            'data': task_info\n        }))\n    \n    async def task_progress_update(self, event):\n        \"\"\"Handle task progress updates.\"\"\"\n        await self.send(text_data=json.dumps({\n            'type': 'progress_update',\n            'data': event['data']\n        }))\n",[1076,17350,17351,17356,17370,17395,17409,17415,17419,17428,17437,17441,17466,17485,17489,17506,17515,17521,17544,17548,17557,17571,17589,17607,17641,17675,17707,17738,17742,17746,17758,17770,17793,17800,17828,17864,17868,17875,17879,17891,17897,17911,17940,17944,17948,17974,17983,17992,17996,18009,18016,18039,18062,18077,18095,18107,18111,18120,18134,18152,18174,18178,18190,18204,18222,18240,18244,18248,18254,18258,18281,18290,18322,18326,18331,18356,18377,18383,18388,18407,18411,18431,18441,18445,18449,18465,18477,18481,18488,18492,18505,18514,18519,18528,18542,18557,18572,18587,18600,18604,18608,18613,18620,18624,18629,18643,18652,18656,18670,18674,18692,18704,18715,18727,18738,18752,18756,18760,18770,18781,18791,18805,18818,18822,18826,18851,18871,18890,18894,18909,18913,18919,18940,18944,18959,18976,18994,18998,19002,19006,19018,19032,19062,19066,19070,19075,19084,19093,19097,19109,19123,19127,19153,19162,19184,19188,19203,19208,19217,19231,19249,19273,19277,19281,19286,19316,19339,19343,19348,19356,19368,19372,19377,19392,19396,19401,19410,19424,19442,19456,19474,19496,19500,19504,19516,19539,19545,19573,19577,19585,19597,19601,19608,19612,19625,19634,19639,19645,19660,19675,19690,19703,19707,19711,19716,19738,19744,19748,19762,19771,19775,19792,19801,19846,19874,19878,19884,19904,19915,19925,19930,19935,19949,19954,19960,19974,19979,20000,20010,20028,20039,20048,20053,20058,20074,20084,20095,20120,20125,20152,20172,20186,20192,20197,20218,20228,20253,20273,20296],{"__ignoreMap":1074},[1079,17352,17353],{"class":1081,"line":1082},[1079,17354,17355],{"class":1085},"# Task result utilities and management\n",[1079,17357,17358,17360,17362,17364,17366,17368],{"class":1081,"line":1089},[1079,17359,1093],{"class":1092},[1079,17361,1267],{"class":1096},[1079,17363,1181],{"class":1116},[1079,17365,1272],{"class":1096},[1079,17367,1100],{"class":1092},[1079,17369,1416],{"class":1096},[1079,17371,17372,17374,17376,17378,17380,17382,17385,17387,17390,17392],{"class":1081,"line":1106},[1079,17373,1093],{"class":1092},[1079,17375,1267],{"class":1096},[1079,17377,1181],{"class":1116},[1079,17379,4787],{"class":1096},[1079,17381,1181],{"class":1116},[1079,17383,17384],{"class":1096},"management",[1079,17386,1181],{"class":1116},[1079,17388,17389],{"class":1096},"base ",[1079,17391,1100],{"class":1092},[1079,17393,17394],{"class":1096}," BaseCommand\n",[1079,17396,17397,17399,17401,17403,17405,17407],{"class":1081,"line":1113},[1079,17398,1093],{"class":1092},[1079,17400,6081],{"class":1096},[1079,17402,1100],{"class":1092},[1079,17404,6086],{"class":1096},[1079,17406,1141],{"class":1116},[1079,17408,6091],{"class":1096},[1079,17410,17411,17413],{"class":1081,"line":1124},[1079,17412,1100],{"class":1092},[1079,17414,11853],{"class":1096},[1079,17416,17417],{"class":1081,"line":1155},[1079,17418,1110],{"emptyLinePlaceholder":1109},[1079,17420,17421,17423,17426],{"class":1081,"line":1169},[1079,17422,3176],{"class":1127},[1079,17424,17425],{"class":3394}," TaskResultManager",[1079,17427,3572],{"class":1116},[1079,17429,17430,17432,17435],{"class":1081,"line":1207},[1079,17431,1159],{"class":1158},[1079,17433,17434],{"class":1162},"Utility class for managing task results.",[1079,17436,1166],{"class":1158},[1079,17438,17439],{"class":1081,"line":1251},[1079,17440,1511],{"class":1096},[1079,17442,17443,17445,17447,17449,17451,17453,17456,17458,17460,17462,17464],{"class":1081,"line":1256},[1079,17444,3709],{"class":1127},[1079,17446,3712],{"class":1482},[1079,17448,1134],{"class":1116},[1079,17450,3718],{"class":3717},[1079,17452,1141],{"class":1116},[1079,17454,17455],{"class":1137}," backend_name",[1079,17457,1175],{"class":1577},[1079,17459,1232],{"class":1224},[1079,17461,2056],{"class":1228},[1079,17463,1232],{"class":1224},[1079,17465,1152],{"class":1116},[1079,17467,17468,17470,17472,17474,17476,17478,17480,17483],{"class":1081,"line":1262},[1079,17469,3754],{"class":2041},[1079,17471,1181],{"class":1116},[1079,17473,2704],{"class":1184},[1079,17475,2045],{"class":1116},[1079,17477,1849],{"class":1190},[1079,17479,1134],{"class":1116},[1079,17481,17482],{"class":1190},"backend_name",[1079,17484,1204],{"class":1116},[1079,17486,17487],{"class":1081,"line":1280},[1079,17488,1511],{"class":1096},[1079,17490,17491,17493,17496,17498,17500,17502,17504],{"class":1081,"line":1285},[1079,17492,3709],{"class":1127},[1079,17494,17495],{"class":1120}," get_task_info",[1079,17497,1134],{"class":1116},[1079,17499,3718],{"class":3717},[1079,17501,1141],{"class":1116},[1079,17503,1826],{"class":1137},[1079,17505,1152],{"class":1116},[1079,17507,17508,17510,17513],{"class":1081,"line":1293},[1079,17509,3807],{"class":1158},[1079,17511,17512],{"class":1162},"Get comprehensive task information.",[1079,17514,1166],{"class":1158},[1079,17516,17517,17519],{"class":1081,"line":1315},[1079,17518,6911],{"class":1092},[1079,17520,3572],{"class":1116},[1079,17522,17523,17526,17528,17530,17532,17534,17536,17538,17540,17542],{"class":1081,"line":1325},[1079,17524,17525],{"class":1096},"            task_result ",[1079,17527,1175],{"class":1116},[1079,17529,6726],{"class":2041},[1079,17531,1181],{"class":1116},[1079,17533,2704],{"class":1184},[1079,17535,1181],{"class":1116},[1079,17537,1867],{"class":1190},[1079,17539,1134],{"class":1116},[1079,17541,1742],{"class":1190},[1079,17543,1204],{"class":1116},[1079,17545,17546],{"class":1081,"line":1352},[1079,17547,6945],{"class":1096},[1079,17549,17550,17553,17555],{"class":1081,"line":1652},[1079,17551,17552],{"class":1096},"            info ",[1079,17554,1175],{"class":1116},[1079,17556,2048],{"class":1116},[1079,17558,17559,17561,17563,17565,17567,17569],{"class":1081,"line":1657},[1079,17560,2228],{"class":1224},[1079,17562,1742],{"class":1228},[1079,17564,1232],{"class":1224},[1079,17566,1747],{"class":1116},[1079,17568,1826],{"class":1096},[1079,17570,1757],{"class":1116},[1079,17572,17573,17575,17577,17579,17581,17583,17585,17587],{"class":1081,"line":1672},[1079,17574,2228],{"class":1224},[1079,17576,1765],{"class":1228},[1079,17578,1232],{"class":1224},[1079,17580,1747],{"class":1116},[1079,17582,1750],{"class":1096},[1079,17584,1181],{"class":1116},[1079,17586,1765],{"class":1184},[1079,17588,1757],{"class":1116},[1079,17590,17591,17593,17595,17597,17599,17601,17603,17605],{"class":1081,"line":1682},[1079,17592,2228],{"class":1224},[1079,17594,1948],{"class":1228},[1079,17596,1232],{"class":1224},[1079,17598,1747],{"class":1116},[1079,17600,1750],{"class":1096},[1079,17602,1181],{"class":1116},[1079,17604,1948],{"class":1190},[1079,17606,16044],{"class":1116},[1079,17608,17609,17611,17613,17615,17617,17619,17621,17623,17625,17627,17629,17631,17633,17635,17637,17639],{"class":1081,"line":1688},[1079,17610,2228],{"class":1224},[1079,17612,7480],{"class":1228},[1079,17614,1232],{"class":1224},[1079,17616,1747],{"class":1116},[1079,17618,1750],{"class":1096},[1079,17620,1181],{"class":1116},[1079,17622,7480],{"class":1190},[1079,17624,1951],{"class":1116},[1079,17626,1941],{"class":1092},[1079,17628,1750],{"class":1096},[1079,17630,1181],{"class":1116},[1079,17632,1948],{"class":1190},[1079,17634,1951],{"class":1116},[1079,17636,1954],{"class":1092},[1079,17638,1958],{"class":1957},[1079,17640,1757],{"class":1116},[1079,17642,17643,17645,17647,17649,17651,17653,17655,17657,17659,17661,17663,17665,17667,17669,17671,17673],{"class":1081,"line":1720},[1079,17644,2228],{"class":1224},[1079,17646,7495],{"class":1228},[1079,17648,1232],{"class":1224},[1079,17650,1747],{"class":1116},[1079,17652,1750],{"class":1096},[1079,17654,1181],{"class":1116},[1079,17656,7495],{"class":1190},[1079,17658,1951],{"class":1116},[1079,17660,1941],{"class":1092},[1079,17662,1750],{"class":1096},[1079,17664,1181],{"class":1116},[1079,17666,1948],{"class":1190},[1079,17668,1951],{"class":1116},[1079,17670,1954],{"class":1092},[1079,17672,1958],{"class":1957},[1079,17674,1757],{"class":1116},[1079,17676,17677,17679,17682,17684,17686,17689,17691,17693,17695,17697,17699,17701,17703,17705],{"class":1081,"line":1725},[1079,17678,2228],{"class":1224},[1079,17680,17681],{"class":1228},"date_created",[1079,17683,1232],{"class":1224},[1079,17685,1747],{"class":1116},[1079,17687,17688],{"class":1482}," getattr",[1079,17690,1134],{"class":1116},[1079,17692,1988],{"class":1190},[1079,17694,1141],{"class":1116},[1079,17696,1225],{"class":1224},[1079,17698,17681],{"class":1228},[1079,17700,1232],{"class":1224},[1079,17702,1141],{"class":1116},[1079,17704,1958],{"class":1957},[1079,17706,3880],{"class":1116},[1079,17708,17709,17711,17714,17716,17718,17720,17722,17724,17726,17728,17730,17732,17734,17736],{"class":1081,"line":1736},[1079,17710,2228],{"class":1224},[1079,17712,17713],{"class":1228},"date_done",[1079,17715,1232],{"class":1224},[1079,17717,1747],{"class":1116},[1079,17719,17688],{"class":1482},[1079,17721,1134],{"class":1116},[1079,17723,1988],{"class":1190},[1079,17725,1141],{"class":1116},[1079,17727,1225],{"class":1224},[1079,17729,17713],{"class":1228},[1079,17731,1232],{"class":1224},[1079,17733,1141],{"class":1116},[1079,17735,1958],{"class":1957},[1079,17737,3880],{"class":1116},[1079,17739,17740],{"class":1081,"line":1760},[1079,17741,2572],{"class":1116},[1079,17743,17744],{"class":1081,"line":1781},[1079,17745,6945],{"class":1096},[1079,17747,17748,17750,17752,17754,17756],{"class":1081,"line":1801},[1079,17749,5357],{"class":1092},[1079,17751,1750],{"class":1096},[1079,17753,1181],{"class":1116},[1079,17755,1948],{"class":1190},[1079,17757,5352],{"class":1116},[1079,17759,17760,17762,17764,17766,17768],{"class":1081,"line":1807},[1079,17761,7894],{"class":1092},[1079,17763,1750],{"class":1096},[1079,17765,1181],{"class":1116},[1079,17767,7480],{"class":1190},[1079,17769,5352],{"class":1116},[1079,17771,17772,17775,17777,17779,17781,17783,17785,17787,17789,17791],{"class":1081,"line":1812},[1079,17773,17774],{"class":1096},"                    info",[1079,17776,7940],{"class":1116},[1079,17778,1232],{"class":1224},[1079,17780,1639],{"class":1228},[1079,17782,1232],{"class":1224},[1079,17784,16165],{"class":1116},[1079,17786,2045],{"class":1116},[1079,17788,1750],{"class":1096},[1079,17790,1181],{"class":1116},[1079,17792,16174],{"class":1184},[1079,17794,17795,17798],{"class":1081,"line":1831},[1079,17796,17797],{"class":1092},"                else",[1079,17799,3572],{"class":1116},[1079,17801,17802,17804,17806,17808,17810,17812,17814,17816,17818,17820,17822,17824,17826],{"class":1081,"line":1841},[1079,17803,17774],{"class":1096},[1079,17805,7940],{"class":1116},[1079,17807,1232],{"class":1224},[1079,17809,6611],{"class":1228},[1079,17811,1232],{"class":1224},[1079,17813,16165],{"class":1116},[1079,17815,2045],{"class":1116},[1079,17817,8100],{"class":3733},[1079,17819,1134],{"class":1116},[1079,17821,1988],{"class":1190},[1079,17823,1181],{"class":1116},[1079,17825,1639],{"class":1184},[1079,17827,1204],{"class":1116},[1079,17829,17830,17832,17834,17836,17838,17840,17842,17844,17846,17848,17850,17852,17854,17856,17858,17860,17862],{"class":1081,"line":1855},[1079,17831,17774],{"class":1096},[1079,17833,7940],{"class":1116},[1079,17835,1232],{"class":1224},[1079,17837,16220],{"class":1228},[1079,17839,1232],{"class":1224},[1079,17841,16165],{"class":1116},[1079,17843,2045],{"class":1116},[1079,17845,17688],{"class":1482},[1079,17847,1134],{"class":1116},[1079,17849,1988],{"class":1190},[1079,17851,1141],{"class":1116},[1079,17853,1225],{"class":1224},[1079,17855,16220],{"class":1228},[1079,17857,1232],{"class":1224},[1079,17859,1141],{"class":1116},[1079,17861,1958],{"class":1957},[1079,17863,1204],{"class":1116},[1079,17865,17866],{"class":1081,"line":1876},[1079,17867,6945],{"class":1096},[1079,17869,17870,17872],{"class":1081,"line":1881},[1079,17871,9037],{"class":1092},[1079,17873,17874],{"class":1096}," info\n",[1079,17876,17877],{"class":1081,"line":1890},[1079,17878,5012],{"class":1096},[1079,17880,17881,17883,17885,17887,17889],{"class":1081,"line":1905},[1079,17882,7239],{"class":1092},[1079,17884,5209],{"class":3733},[1079,17886,5212],{"class":1092},[1079,17888,5215],{"class":1096},[1079,17890,3572],{"class":1116},[1079,17892,17893,17895],{"class":1081,"line":1924},[1079,17894,9037],{"class":1092},[1079,17896,2048],{"class":1116},[1079,17898,17899,17901,17903,17905,17907,17909],{"class":1081,"line":1963},[1079,17900,2228],{"class":1224},[1079,17902,1742],{"class":1228},[1079,17904,1232],{"class":1224},[1079,17906,1747],{"class":1116},[1079,17908,1826],{"class":1096},[1079,17910,1757],{"class":1116},[1079,17912,17913,17915,17917,17919,17921,17923,17926,17928,17930,17932,17934,17936,17938],{"class":1081,"line":2007},[1079,17914,2228],{"class":1224},[1079,17916,6611],{"class":1228},[1079,17918,1232],{"class":1224},[1079,17920,1747],{"class":1116},[1079,17922,1610],{"class":1127},[1079,17924,17925],{"class":1228},"'Failed to get task info: ",[1079,17927,1495],{"class":1494},[1079,17929,5236],{"class":3733},[1079,17931,1134],{"class":1116},[1079,17933,5241],{"class":1190},[1079,17935,1999],{"class":1116},[1079,17937,1501],{"class":1494},[1079,17939,1798],{"class":1228},[1079,17941,17942],{"class":1081,"line":2421},[1079,17943,2572],{"class":1116},[1079,17945,17946],{"class":1081,"line":2434},[1079,17947,1511],{"class":1096},[1079,17949,17950,17952,17955,17957,17959,17961,17964,17966,17968,17970,17972],{"class":1081,"line":2453},[1079,17951,3709],{"class":1127},[1079,17953,17954],{"class":1120}," wait_for_multiple_tasks",[1079,17956,1134],{"class":1116},[1079,17958,3718],{"class":3717},[1079,17960,1141],{"class":1116},[1079,17962,17963],{"class":1137}," task_ids",[1079,17965,1141],{"class":1116},[1079,17967,5746],{"class":1137},[1079,17969,1175],{"class":1577},[1079,17971,6171],{"class":1546},[1079,17973,1152],{"class":1116},[1079,17975,17976,17978,17981],{"class":1081,"line":2459},[1079,17977,3807],{"class":1158},[1079,17979,17980],{"class":1162},"Wait for multiple tasks to complete.",[1079,17982,1166],{"class":1158},[1079,17984,17985,17988,17990],{"class":1081,"line":2473},[1079,17986,17987],{"class":1096},"        results ",[1079,17989,1175],{"class":1116},[1079,17991,6375],{"class":1116},[1079,17993,17994],{"class":1081,"line":2492},[1079,17995,5012],{"class":1096},[1079,17997,17998,18000,18003,18005,18007],{"class":1081,"line":2505},[1079,17999,5332],{"class":1092},[1079,18001,18002],{"class":1096}," task_id ",[1079,18004,1522],{"class":1092},[1079,18006,17963],{"class":1096},[1079,18008,3572],{"class":1116},[1079,18010,18011,18014],{"class":1081,"line":2518},[1079,18012,18013],{"class":1092},"            try",[1079,18015,3572],{"class":1116},[1079,18017,18018,18021,18023,18025,18027,18029,18031,18033,18035,18037],{"class":1081,"line":2538},[1079,18019,18020],{"class":1096},"                task_result ",[1079,18022,1175],{"class":1116},[1079,18024,6726],{"class":2041},[1079,18026,1181],{"class":1116},[1079,18028,2704],{"class":1184},[1079,18030,1181],{"class":1116},[1079,18032,1867],{"class":1190},[1079,18034,1134],{"class":1116},[1079,18036,1742],{"class":1190},[1079,18038,1204],{"class":1116},[1079,18040,18041,18044,18046,18048,18050,18052,18054,18056,18058,18060],{"class":1081,"line":2553},[1079,18042,18043],{"class":1096},"                result ",[1079,18045,1175],{"class":1116},[1079,18047,1750],{"class":1096},[1079,18049,1181],{"class":1116},[1079,18051,1191],{"class":1190},[1079,18053,1134],{"class":1116},[1079,18055,2858],{"class":1196},[1079,18057,1175],{"class":1116},[1079,18059,2858],{"class":1190},[1079,18061,1204],{"class":1116},[1079,18063,18064,18067,18069,18071,18073,18075],{"class":1081,"line":2569},[1079,18065,18066],{"class":1096},"                results",[1079,18068,7940],{"class":1116},[1079,18070,1742],{"class":1096},[1079,18072,16165],{"class":1116},[1079,18074,2045],{"class":1116},[1079,18076,2048],{"class":1116},[1079,18078,18079,18081,18083,18085,18087,18089,18091,18093],{"class":1081,"line":2575},[1079,18080,7614],{"class":1224},[1079,18082,1765],{"class":1228},[1079,18084,1232],{"class":1224},[1079,18086,1747],{"class":1116},[1079,18088,1225],{"class":1224},[1079,18090,16575],{"class":1228},[1079,18092,1232],{"class":1224},[1079,18094,1757],{"class":1116},[1079,18096,18097,18099,18101,18103,18105],{"class":1081,"line":2580},[1079,18098,7614],{"class":1224},[1079,18100,1639],{"class":1228},[1079,18102,1232],{"class":1224},[1079,18104,1747],{"class":1116},[1079,18106,1649],{"class":1096},[1079,18108,18109],{"class":1081,"line":2585},[1079,18110,7679],{"class":1116},[1079,18112,18113,18116,18118],{"class":1081,"line":2599},[1079,18114,18115],{"class":1092},"            except",[1079,18117,16606],{"class":3733},[1079,18119,3572],{"class":1116},[1079,18121,18122,18124,18126,18128,18130,18132],{"class":1081,"line":2618},[1079,18123,18066],{"class":1096},[1079,18125,7940],{"class":1116},[1079,18127,1742],{"class":1096},[1079,18129,16165],{"class":1116},[1079,18131,2045],{"class":1116},[1079,18133,2048],{"class":1116},[1079,18135,18136,18138,18140,18142,18144,18146,18148,18150],{"class":1081,"line":2631},[1079,18137,7614],{"class":1224},[1079,18139,1765],{"class":1228},[1079,18141,1232],{"class":1224},[1079,18143,1747],{"class":1116},[1079,18145,1225],{"class":1224},[1079,18147,2858],{"class":1228},[1079,18149,1232],{"class":1224},[1079,18151,1757],{"class":1116},[1079,18153,18154,18156,18158,18160,18162,18164,18166,18168,18170,18172],{"class":1081,"line":2651},[1079,18155,7614],{"class":1224},[1079,18157,6611],{"class":1228},[1079,18159,1232],{"class":1224},[1079,18161,1747],{"class":1116},[1079,18163,1610],{"class":1127},[1079,18165,16663],{"class":1228},[1079,18167,1495],{"class":1494},[1079,18169,2858],{"class":1096},[1079,18171,1501],{"class":1494},[1079,18173,16672],{"class":1228},[1079,18175,18176],{"class":1081,"line":2656},[1079,18177,7679],{"class":1116},[1079,18179,18180,18182,18184,18186,18188],{"class":1081,"line":2661},[1079,18181,18115],{"class":1092},[1079,18183,5209],{"class":3733},[1079,18185,5212],{"class":1092},[1079,18187,5215],{"class":1096},[1079,18189,3572],{"class":1116},[1079,18191,18192,18194,18196,18198,18200,18202],{"class":1081,"line":2666},[1079,18193,18066],{"class":1096},[1079,18195,7940],{"class":1116},[1079,18197,1742],{"class":1096},[1079,18199,16165],{"class":1116},[1079,18201,2045],{"class":1116},[1079,18203,2048],{"class":1116},[1079,18205,18206,18208,18210,18212,18214,18216,18218,18220],{"class":1081,"line":2671},[1079,18207,7614],{"class":1224},[1079,18209,1765],{"class":1228},[1079,18211,1232],{"class":1224},[1079,18213,1747],{"class":1116},[1079,18215,1225],{"class":1224},[1079,18217,6611],{"class":1228},[1079,18219,1232],{"class":1224},[1079,18221,1757],{"class":1116},[1079,18223,18224,18226,18228,18230,18232,18234,18236,18238],{"class":1081,"line":2677},[1079,18225,7614],{"class":1224},[1079,18227,6611],{"class":1228},[1079,18229,1232],{"class":1224},[1079,18231,1747],{"class":1116},[1079,18233,8100],{"class":3733},[1079,18235,1134],{"class":1116},[1079,18237,5241],{"class":1190},[1079,18239,1204],{"class":1116},[1079,18241,18242],{"class":1081,"line":2687},[1079,18243,7679],{"class":1116},[1079,18245,18246],{"class":1081,"line":2720},[1079,18247,5012],{"class":1096},[1079,18249,18250,18252],{"class":1081,"line":2750},[1079,18251,3817],{"class":1092},[1079,18253,8124],{"class":1096},[1079,18255,18256],{"class":1081,"line":2780},[1079,18257,1511],{"class":1096},[1079,18259,18260,18262,18265,18267,18269,18271,18274,18276,18279],{"class":1081,"line":2785},[1079,18261,3709],{"class":1127},[1079,18263,18264],{"class":1120}," cleanup_old_results",[1079,18266,1134],{"class":1116},[1079,18268,3718],{"class":3717},[1079,18270,1141],{"class":1116},[1079,18272,18273],{"class":1137}," days_old",[1079,18275,1175],{"class":1577},[1079,18277,18278],{"class":1546},"7",[1079,18280,1152],{"class":1116},[1079,18282,18283,18285,18288],{"class":1081,"line":2790},[1079,18284,3807],{"class":1158},[1079,18286,18287],{"class":1162},"Clean up old task results.",[1079,18289,1166],{"class":1158},[1079,18291,18292,18295,18297,18299,18301,18303,18305,18308,18310,18312,18315,18317,18320],{"class":1081,"line":2796},[1079,18293,18294],{"class":1096},"        cutoff_date ",[1079,18296,1175],{"class":1116},[1079,18298,6086],{"class":1096},[1079,18300,1181],{"class":1116},[1079,18302,7777],{"class":1190},[1079,18304,1951],{"class":1116},[1079,18306,18307],{"class":1577}," -",[1079,18309,13852],{"class":1190},[1079,18311,1134],{"class":1116},[1079,18313,18314],{"class":1196},"days",[1079,18316,1175],{"class":1116},[1079,18318,18319],{"class":1190},"days_old",[1079,18321,1204],{"class":1116},[1079,18323,18324],{"class":1081,"line":2806},[1079,18325,5012],{"class":1096},[1079,18327,18328],{"class":1081,"line":2819},[1079,18329,18330],{"class":1085},"        # Implementation depends on backend\n",[1079,18332,18333,18335,18337,18339,18341,18343,18345,18347,18349,18352,18354],{"class":1081,"line":2836},[1079,18334,9018],{"class":1092},[1079,18336,1983],{"class":1482},[1079,18338,1134],{"class":1116},[1079,18340,3718],{"class":2041},[1079,18342,1181],{"class":1116},[1079,18344,2704],{"class":1184},[1079,18346,1141],{"class":1116},[1079,18348,1225],{"class":1224},[1079,18350,18351],{"class":1228},"cleanup_results",[1079,18353,1232],{"class":1224},[1079,18355,1152],{"class":1116},[1079,18357,18358,18360,18362,18364,18366,18368,18370,18372,18375],{"class":1081,"line":2853},[1079,18359,9037],{"class":1092},[1079,18361,6726],{"class":2041},[1079,18363,1181],{"class":1116},[1079,18365,2704],{"class":1184},[1079,18367,1181],{"class":1116},[1079,18369,18351],{"class":1190},[1079,18371,1134],{"class":1116},[1079,18373,18374],{"class":1190},"cutoff_date",[1079,18376,1204],{"class":1116},[1079,18378,18379,18381],{"class":1081,"line":2873},[1079,18380,9082],{"class":1092},[1079,18382,3572],{"class":1116},[1079,18384,18385],{"class":1081,"line":2878},[1079,18386,18387],{"class":1085},"            # Manual cleanup for database backend\n",[1079,18389,18390,18393,18395,18397,18399,18401,18403,18405],{"class":1081,"line":2891},[1079,18391,18392],{"class":1092},"            from",[1079,18394,1267],{"class":1096},[1079,18396,1181],{"class":1116},[1079,18398,3363],{"class":1096},[1079,18400,1181],{"class":1116},[1079,18402,3378],{"class":1096},[1079,18404,1100],{"class":1092},[1079,18406,3383],{"class":1096},[1079,18408,18409],{"class":1081,"line":2907},[1079,18410,6945],{"class":1096},[1079,18412,18413,18416,18418,18421,18423,18425,18427,18429],{"class":1081,"line":2923},[1079,18414,18415],{"class":1096},"            old_results ",[1079,18417,1175],{"class":1116},[1079,18419,18420],{"class":1096}," TaskResult",[1079,18422,1181],{"class":1116},[1079,18424,1185],{"class":1184},[1079,18426,1181],{"class":1116},[1079,18428,9153],{"class":1190},[1079,18430,3495],{"class":1116},[1079,18432,18433,18436,18438],{"class":1081,"line":2942},[1079,18434,18435],{"class":1196},"                date_created__lt",[1079,18437,1175],{"class":1116},[1079,18439,18440],{"class":1190},"cutoff_date\n",[1079,18442,18443],{"class":1081,"line":2947},[1079,18444,7685],{"class":1116},[1079,18446,18447],{"class":1081,"line":2952},[1079,18448,6945],{"class":1096},[1079,18450,18451,18454,18456,18459,18461,18463],{"class":1081,"line":2957},[1079,18452,18453],{"class":1096},"            count ",[1079,18455,1175],{"class":1116},[1079,18457,18458],{"class":1096}," old_results",[1079,18460,1181],{"class":1116},[1079,18462,9179],{"class":1190},[1079,18464,1852],{"class":1116},[1079,18466,18467,18470,18472,18475],{"class":1081,"line":2963},[1079,18468,18469],{"class":1096},"            old_results",[1079,18471,1181],{"class":1116},[1079,18473,18474],{"class":1190},"delete",[1079,18476,1852],{"class":1116},[1079,18478,18479],{"class":1081,"line":2981},[1079,18480,6945],{"class":1096},[1079,18482,18483,18485],{"class":1081,"line":2986},[1079,18484,9037],{"class":1092},[1079,18486,18487],{"class":1096}," count\n",[1079,18489,18490],{"class":1081,"line":2992},[1079,18491,1511],{"class":1096},[1079,18493,18494,18496,18499,18501,18503],{"class":1081,"line":3006},[1079,18495,3709],{"class":1127},[1079,18497,18498],{"class":1120}," get_task_statistics",[1079,18500,1134],{"class":1116},[1079,18502,3718],{"class":3717},[1079,18504,1152],{"class":1116},[1079,18506,18507,18509,18512],{"class":1081,"line":3011},[1079,18508,3807],{"class":1158},[1079,18510,18511],{"class":1162},"Get task execution statistics.",[1079,18513,1166],{"class":1158},[1079,18515,18516],{"class":1081,"line":3017},[1079,18517,18518],{"class":1085},"        # Implementation depends on backend capabilities\n",[1079,18520,18521,18524,18526],{"class":1081,"line":3031},[1079,18522,18523],{"class":1096},"        stats ",[1079,18525,1175],{"class":1116},[1079,18527,2048],{"class":1116},[1079,18529,18530,18532,18534,18536,18538,18540],{"class":1081,"line":3042},[1079,18531,2100],{"class":1224},[1079,18533,15802],{"class":1228},[1079,18535,1232],{"class":1224},[1079,18537,1747],{"class":1116},[1079,18539,2274],{"class":1546},[1079,18541,1757],{"class":1116},[1079,18543,18544,18546,18549,18551,18553,18555],{"class":1081,"line":3047},[1079,18545,2100],{"class":1224},[1079,18547,18548],{"class":1228},"completed_tasks",[1079,18550,1232],{"class":1224},[1079,18552,1747],{"class":1116},[1079,18554,2274],{"class":1546},[1079,18556,1757],{"class":1116},[1079,18558,18559,18561,18564,18566,18568,18570],{"class":1081,"line":3053},[1079,18560,2100],{"class":1224},[1079,18562,18563],{"class":1228},"failed_tasks",[1079,18565,1232],{"class":1224},[1079,18567,1747],{"class":1116},[1079,18569,2274],{"class":1546},[1079,18571,1757],{"class":1116},[1079,18573,18574,18576,18579,18581,18583,18585],{"class":1081,"line":3064},[1079,18575,2100],{"class":1224},[1079,18577,18578],{"class":1228},"pending_tasks",[1079,18580,1232],{"class":1224},[1079,18582,1747],{"class":1116},[1079,18584,2274],{"class":1546},[1079,18586,1757],{"class":1116},[1079,18588,18589,18591,18594,18596,18598],{"class":1081,"line":3074},[1079,18590,2100],{"class":1224},[1079,18592,18593],{"class":1228},"average_execution_time",[1079,18595,1232],{"class":1224},[1079,18597,1747],{"class":1116},[1079,18599,5804],{"class":1546},[1079,18601,18602],{"class":1081,"line":3079},[1079,18603,2140],{"class":1116},[1079,18605,18606],{"class":1081,"line":3089},[1079,18607,5012],{"class":1096},[1079,18609,18610],{"class":1081,"line":3105},[1079,18611,18612],{"class":1085},"        # This would need to be implemented based on your backend\n",[1079,18614,18615,18617],{"class":1081,"line":3122},[1079,18616,3817],{"class":1092},[1079,18618,18619],{"class":1096}," stats\n",[1079,18621,18622],{"class":1081,"line":3136},[1079,18623,1110],{"emptyLinePlaceholder":1109},[1079,18625,18626],{"class":1081,"line":3150},[1079,18627,18628],{"class":1085},"# Management command for task result cleanup\n",[1079,18630,18631,18633,18636,18638,18641],{"class":1081,"line":3171},[1079,18632,3176],{"class":1127},[1079,18634,18635],{"class":3394}," Command",[1079,18637,1134],{"class":1116},[1079,18639,18640],{"class":3400},"BaseCommand",[1079,18642,1152],{"class":1116},[1079,18644,18645,18647,18650],{"class":1081,"line":3192},[1079,18646,1159],{"class":1158},[1079,18648,18649],{"class":1162},"Management command to clean up old task results.",[1079,18651,1166],{"class":1158},[1079,18653,18654],{"class":1081,"line":3213},[1079,18655,1511],{"class":1096},[1079,18657,18658,18661,18663,18665,18668],{"class":1081,"line":3219},[1079,18659,18660],{"class":1482},"    help",[1079,18662,2045],{"class":1116},[1079,18664,1225],{"class":1224},[1079,18666,18667],{"class":1228},"Clean up old task results",[1079,18669,1798],{"class":1224},[1079,18671,18672],{"class":1081,"line":3224},[1079,18673,1511],{"class":1096},[1079,18675,18676,18678,18681,18683,18685,18687,18690],{"class":1081,"line":3238},[1079,18677,3709],{"class":1127},[1079,18679,18680],{"class":1120}," add_arguments",[1079,18682,1134],{"class":1116},[1079,18684,3718],{"class":3717},[1079,18686,1141],{"class":1116},[1079,18688,18689],{"class":1137}," parser",[1079,18691,1152],{"class":1116},[1079,18693,18694,18697,18699,18702],{"class":1081,"line":3252},[1079,18695,18696],{"class":1096},"        parser",[1079,18698,1181],{"class":1116},[1079,18700,18701],{"class":1190},"add_argument",[1079,18703,3495],{"class":1116},[1079,18705,18706,18708,18711,18713],{"class":1081,"line":3274},[1079,18707,2100],{"class":1224},[1079,18709,18710],{"class":1228},"--days",[1079,18712,1232],{"class":1224},[1079,18714,1757],{"class":1116},[1079,18716,18717,18720,18722,18725],{"class":1081,"line":3293},[1079,18718,18719],{"class":1196},"            type",[1079,18721,1175],{"class":1116},[1079,18723,18724],{"class":3733},"int",[1079,18726,1757],{"class":1116},[1079,18728,18729,18732,18734,18736],{"class":1081,"line":3310},[1079,18730,18731],{"class":1196},"            default",[1079,18733,1175],{"class":1116},[1079,18735,18278],{"class":1546},[1079,18737,1757],{"class":1116},[1079,18739,18740,18743,18745,18747,18750],{"class":1081,"line":3315},[1079,18741,18742],{"class":1196},"            help",[1079,18744,1175],{"class":1116},[1079,18746,1232],{"class":1224},[1079,18748,18749],{"class":1228},"Number of days to keep results (default: 7)",[1079,18751,1798],{"class":1224},[1079,18753,18754],{"class":1081,"line":3320},[1079,18755,3936],{"class":1116},[1079,18757,18758],{"class":1081,"line":7490},[1079,18759,5012],{"class":1096},[1079,18761,18762,18764,18766,18768],{"class":1081,"line":7504},[1079,18763,18696],{"class":1096},[1079,18765,1181],{"class":1116},[1079,18767,18701],{"class":1190},[1079,18769,3495],{"class":1116},[1079,18771,18772,18774,18777,18779],{"class":1081,"line":7525},[1079,18773,2100],{"class":1224},[1079,18775,18776],{"class":1228},"--backend",[1079,18778,1232],{"class":1224},[1079,18780,1757],{"class":1116},[1079,18782,18783,18785,18787,18789],{"class":1081,"line":7530},[1079,18784,18719],{"class":1196},[1079,18786,1175],{"class":1116},[1079,18788,5236],{"class":3733},[1079,18790,1757],{"class":1116},[1079,18792,18793,18795,18797,18799,18801,18803],{"class":1081,"line":7535},[1079,18794,18731],{"class":1196},[1079,18796,1175],{"class":1116},[1079,18798,1232],{"class":1224},[1079,18800,2056],{"class":1228},[1079,18802,1232],{"class":1224},[1079,18804,1757],{"class":1116},[1079,18806,18807,18809,18811,18813,18816],{"class":1081,"line":7559},[1079,18808,18742],{"class":1196},[1079,18810,1175],{"class":1116},[1079,18812,1232],{"class":1224},[1079,18814,18815],{"class":1228},"Task backend to clean up (default: default)",[1079,18817,1798],{"class":1224},[1079,18819,18820],{"class":1081,"line":7566},[1079,18821,3936],{"class":1116},[1079,18823,18824],{"class":1081,"line":7572},[1079,18825,1511],{"class":1096},[1079,18827,18828,18830,18833,18835,18837,18839,18841,18843,18845,18847,18849],{"class":1081,"line":7585},[1079,18829,3709],{"class":1127},[1079,18831,18832],{"class":1120}," handle",[1079,18834,1134],{"class":1116},[1079,18836,3718],{"class":3717},[1079,18838,1141],{"class":1116},[1079,18840,6716],{"class":1577},[1079,18842,14012],{"class":1137},[1079,18844,1141],{"class":1116},[1079,18846,3723],{"class":1577},[1079,18848,3726],{"class":1137},[1079,18850,1152],{"class":1116},[1079,18852,18853,18856,18858,18861,18863,18865,18867,18869],{"class":1081,"line":7602},[1079,18854,18855],{"class":1096},"        days ",[1079,18857,1175],{"class":1116},[1079,18859,18860],{"class":1096}," options",[1079,18862,7940],{"class":1116},[1079,18864,1232],{"class":1224},[1079,18866,18314],{"class":1228},[1079,18868,1232],{"class":1224},[1079,18870,4399],{"class":1116},[1079,18872,18873,18876,18878,18880,18882,18884,18886,18888],{"class":1081,"line":7611},[1079,18874,18875],{"class":1096},"        backend_name ",[1079,18877,1175],{"class":1116},[1079,18879,18860],{"class":1096},[1079,18881,7940],{"class":1116},[1079,18883,1232],{"class":1224},[1079,18885,2704],{"class":1228},[1079,18887,1232],{"class":1224},[1079,18889,4399],{"class":1116},[1079,18891,18892],{"class":1081,"line":7632},[1079,18893,5012],{"class":1096},[1079,18895,18896,18899,18901,18903,18905,18907],{"class":1081,"line":7651},[1079,18897,18898],{"class":1096},"        manager ",[1079,18900,1175],{"class":1116},[1079,18902,17425],{"class":1190},[1079,18904,1134],{"class":1116},[1079,18906,17482],{"class":1190},[1079,18908,1204],{"class":1116},[1079,18910,18911],{"class":1081,"line":7676},[1079,18912,5012],{"class":1096},[1079,18914,18915,18917],{"class":1081,"line":7682},[1079,18916,6911],{"class":1092},[1079,18918,3572],{"class":1116},[1079,18920,18921,18924,18926,18929,18931,18934,18936,18938],{"class":1081,"line":7688},[1079,18922,18923],{"class":1096},"            cleaned_count ",[1079,18925,1175],{"class":1116},[1079,18927,18928],{"class":1096}," manager",[1079,18930,1181],{"class":1116},[1079,18932,18933],{"class":1190},"cleanup_old_results",[1079,18935,1134],{"class":1116},[1079,18937,18314],{"class":1190},[1079,18939,1204],{"class":1116},[1079,18941,18942],{"class":1081,"line":7693},[1079,18943,6945],{"class":1096},[1079,18945,18946,18948,18950,18953,18955,18957],{"class":1081,"line":7721},[1079,18947,7575],{"class":2041},[1079,18949,1181],{"class":1116},[1079,18951,18952],{"class":1184},"stdout",[1079,18954,1181],{"class":1116},[1079,18956,13309],{"class":1190},[1079,18958,3495],{"class":1116},[1079,18960,18961,18964,18966,18969,18971,18974],{"class":1081,"line":7726},[1079,18962,18963],{"class":2041},"                self",[1079,18965,1181],{"class":1116},[1079,18967,18968],{"class":1184},"style",[1079,18970,1181],{"class":1116},[1079,18972,18973],{"class":1190},"SUCCESS",[1079,18975,3495],{"class":1116},[1079,18977,18978,18981,18984,18986,18989,18991],{"class":1081,"line":7746},[1079,18979,18980],{"class":1127},"                    f",[1079,18982,18983],{"class":1228},"'Successfully cleaned up ",[1079,18985,1495],{"class":1494},[1079,18987,18988],{"class":1190},"cleaned_count",[1079,18990,1501],{"class":1494},[1079,18992,18993],{"class":1228}," old task results'\n",[1079,18995,18996],{"class":1081,"line":7761},[1079,18997,7058],{"class":1116},[1079,18999,19000],{"class":1081,"line":7782},[1079,19001,7685],{"class":1116},[1079,19003,19004],{"class":1081,"line":7801},[1079,19005,5012],{"class":1096},[1079,19007,19008,19010,19012,19014,19016],{"class":1081,"line":7815},[1079,19009,7239],{"class":1092},[1079,19011,5209],{"class":3733},[1079,19013,5212],{"class":1092},[1079,19015,5215],{"class":1096},[1079,19017,3572],{"class":1116},[1079,19019,19020,19022,19024,19026,19028,19030],{"class":1081,"line":7833},[1079,19021,7575],{"class":2041},[1079,19023,1181],{"class":1116},[1079,19025,18952],{"class":1184},[1079,19027,1181],{"class":1116},[1079,19029,13309],{"class":1190},[1079,19031,3495],{"class":1116},[1079,19033,19034,19036,19038,19040,19042,19045,19047,19049,19052,19054,19056,19058,19060],{"class":1081,"line":7847},[1079,19035,18963],{"class":2041},[1079,19037,1181],{"class":1116},[1079,19039,18968],{"class":1184},[1079,19041,1181],{"class":1116},[1079,19043,19044],{"class":1190},"ERROR",[1079,19046,1134],{"class":1116},[1079,19048,1488],{"class":1127},[1079,19050,19051],{"class":1228},"'Failed to clean up task results: ",[1079,19053,1495],{"class":1494},[1079,19055,5241],{"class":1190},[1079,19057,1501],{"class":1494},[1079,19059,1232],{"class":1228},[1079,19061,1204],{"class":1116},[1079,19063,19064],{"class":1081,"line":7865},[1079,19065,7685],{"class":1116},[1079,19067,19068],{"class":1081,"line":7891},[1079,19069,1110],{"emptyLinePlaceholder":1109},[1079,19071,19072],{"class":1081,"line":7902},[1079,19073,19074],{"class":1085},"# Task monitoring utilities\n",[1079,19076,19077,19079,19082],{"class":1081,"line":7917},[1079,19078,3176],{"class":1127},[1079,19080,19081],{"class":3394}," TaskMonitor",[1079,19083,3572],{"class":1116},[1079,19085,19086,19088,19091],{"class":1081,"line":7922},[1079,19087,1159],{"class":1158},[1079,19089,19090],{"class":1162},"Monitor task execution and performance.",[1079,19092,1166],{"class":1158},[1079,19094,19095],{"class":1081,"line":7934},[1079,19096,1511],{"class":1096},[1079,19098,19099,19101,19103,19105,19107],{"class":1081,"line":7960},[1079,19100,3709],{"class":1127},[1079,19102,3712],{"class":1482},[1079,19104,1134],{"class":1116},[1079,19106,3718],{"class":3717},[1079,19108,1152],{"class":1116},[1079,19110,19111,19113,19115,19117,19119,19121],{"class":1081,"line":7965},[1079,19112,3754],{"class":2041},[1079,19114,1181],{"class":1116},[1079,19116,2704],{"class":1184},[1079,19118,2045],{"class":1116},[1079,19120,1849],{"class":1190},[1079,19122,1852],{"class":1116},[1079,19124,19125],{"class":1081,"line":7978},[1079,19126,1511],{"class":1096},[1079,19128,19129,19131,19134,19136,19138,19140,19142,19144,19147,19149,19151],{"class":1081,"line":7997},[1079,19130,3709],{"class":1127},[1079,19132,19133],{"class":1120}," monitor_task_progress",[1079,19135,1134],{"class":1116},[1079,19137,3718],{"class":3717},[1079,19139,1141],{"class":1116},[1079,19141,1826],{"class":1137},[1079,19143,1141],{"class":1116},[1079,19145,19146],{"class":1137}," callback",[1079,19148,1175],{"class":1577},[1079,19150,5697],{"class":1957},[1079,19152,1152],{"class":1116},[1079,19154,19155,19157,19160],{"class":1081,"line":8013},[1079,19156,3807],{"class":1158},[1079,19158,19159],{"class":1162},"Monitor task progress with optional callback.",[1079,19161,1166],{"class":1158},[1079,19163,19164,19166,19168,19170,19172,19174,19176,19178,19180,19182],{"class":1081,"line":8031},[1079,19165,12248],{"class":1096},[1079,19167,1175],{"class":1116},[1079,19169,6726],{"class":2041},[1079,19171,1181],{"class":1116},[1079,19173,2704],{"class":1184},[1079,19175,1181],{"class":1116},[1079,19177,1867],{"class":1190},[1079,19179,1134],{"class":1116},[1079,19181,1742],{"class":1190},[1079,19183,1204],{"class":1116},[1079,19185,19186],{"class":1081,"line":8037},[1079,19187,5012],{"class":1096},[1079,19189,19190,19193,19195,19197,19199,19201],{"class":1081,"line":8042},[1079,19191,19192],{"class":1092},"        while",[1079,19194,10093],{"class":1577},[1079,19196,1750],{"class":1096},[1079,19198,1181],{"class":1116},[1079,19200,1948],{"class":1190},[1079,19202,5352],{"class":1116},[1079,19204,19205],{"class":1081,"line":8055},[1079,19206,19207],{"class":1085},"            # Get current status\n",[1079,19209,19210,19213,19215],{"class":1081,"line":8074},[1079,19211,19212],{"class":1096},"            status_info ",[1079,19214,1175],{"class":1116},[1079,19216,2048],{"class":1116},[1079,19218,19219,19221,19223,19225,19227,19229],{"class":1081,"line":8089},[1079,19220,2228],{"class":1224},[1079,19222,1742],{"class":1228},[1079,19224,1232],{"class":1224},[1079,19226,1747],{"class":1116},[1079,19228,1826],{"class":1096},[1079,19230,1757],{"class":1116},[1079,19232,19233,19235,19237,19239,19241,19243,19245,19247],{"class":1081,"line":8109},[1079,19234,2228],{"class":1224},[1079,19236,1765],{"class":1228},[1079,19238,1232],{"class":1224},[1079,19240,1747],{"class":1116},[1079,19242,1750],{"class":1096},[1079,19244,1181],{"class":1116},[1079,19246,1765],{"class":1184},[1079,19248,1757],{"class":1116},[1079,19250,19251,19253,19256,19258,19260,19262,19264,19266,19268,19271],{"class":1081,"line":8114},[1079,19252,2228],{"class":1224},[1079,19254,19255],{"class":1228},"timestamp",[1079,19257,1232],{"class":1224},[1079,19259,1747],{"class":1116},[1079,19261,6086],{"class":1096},[1079,19263,1181],{"class":1116},[1079,19265,7777],{"class":1190},[1079,19267,3737],{"class":1116},[1079,19269,19270],{"class":1190},"isoformat",[1079,19272,1852],{"class":1116},[1079,19274,19275],{"class":1081,"line":8119},[1079,19276,2572],{"class":1116},[1079,19278,19279],{"class":1081,"line":8127},[1079,19280,6945],{"class":1096},[1079,19282,19283],{"class":1081,"line":8132},[1079,19284,19285],{"class":1085},"            # Add progress info if available\n",[1079,19287,19288,19290,19292,19294,19296,19298,19300,19302,19304,19306,19308,19310,19312,19314],{"class":1081,"line":8162},[1079,19289,5357],{"class":1092},[1079,19291,1983],{"class":1482},[1079,19293,1134],{"class":1116},[1079,19295,1988],{"class":1190},[1079,19297,1141],{"class":1116},[1079,19299,1225],{"class":1224},[1079,19301,6544],{"class":1228},[1079,19303,1232],{"class":1224},[1079,19305,1999],{"class":1116},[1079,19307,7110],{"class":1577},[1079,19309,1750],{"class":1096},[1079,19311,1181],{"class":1116},[1079,19313,6544],{"class":1184},[1079,19315,3572],{"class":1116},[1079,19317,19318,19321,19323,19325,19327,19329,19331,19333,19335,19337],{"class":1081,"line":8190},[1079,19319,19320],{"class":1096},"                status_info",[1079,19322,7940],{"class":1116},[1079,19324,1232],{"class":1224},[1079,19326,1968],{"class":1228},[1079,19328,1232],{"class":1224},[1079,19330,16165],{"class":1116},[1079,19332,2045],{"class":1116},[1079,19334,1750],{"class":1096},[1079,19336,1181],{"class":1116},[1079,19338,16296],{"class":1184},[1079,19340,19341],{"class":1081,"line":8200},[1079,19342,6945],{"class":1096},[1079,19344,19345],{"class":1081,"line":8207},[1079,19346,19347],{"class":1085},"            # Call callback if provided\n",[1079,19349,19350,19352,19354],{"class":1081,"line":8234},[1079,19351,5357],{"class":1092},[1079,19353,19146],{"class":1096},[1079,19355,3572],{"class":1116},[1079,19357,19358,19361,19363,19366],{"class":1081,"line":8239},[1079,19359,19360],{"class":1190},"                callback",[1079,19362,1134],{"class":1116},[1079,19364,19365],{"class":1190},"status_info",[1079,19367,1204],{"class":1116},[1079,19369,19370],{"class":1081,"line":8245},[1079,19371,6945],{"class":1096},[1079,19373,19374],{"class":1081,"line":8256},[1079,19375,19376],{"class":1085},"            # Wait before checking again\n",[1079,19378,19379,19382,19384,19386,19388,19390],{"class":1081,"line":8272},[1079,19380,19381],{"class":1096},"            time",[1079,19383,1181],{"class":1116},[1079,19385,1541],{"class":1190},[1079,19387,1134],{"class":1116},[1079,19389,1547],{"class":1546},[1079,19391,1204],{"class":1116},[1079,19393,19394],{"class":1081,"line":8298},[1079,19395,5012],{"class":1096},[1079,19397,19398],{"class":1081,"line":8303},[1079,19399,19400],{"class":1085},"        # Task completed\n",[1079,19402,19403,19406,19408],{"class":1081,"line":8308},[1079,19404,19405],{"class":1096},"        final_status ",[1079,19407,1175],{"class":1116},[1079,19409,2048],{"class":1116},[1079,19411,19412,19414,19416,19418,19420,19422],{"class":1081,"line":8323},[1079,19413,2100],{"class":1224},[1079,19415,1742],{"class":1228},[1079,19417,1232],{"class":1224},[1079,19419,1747],{"class":1116},[1079,19421,1826],{"class":1096},[1079,19423,1757],{"class":1116},[1079,19425,19426,19428,19430,19432,19434,19436,19438,19440],{"class":1081,"line":8345},[1079,19427,2100],{"class":1224},[1079,19429,1765],{"class":1228},[1079,19431,1232],{"class":1224},[1079,19433,1747],{"class":1116},[1079,19435,1750],{"class":1096},[1079,19437,1181],{"class":1116},[1079,19439,1765],{"class":1184},[1079,19441,1757],{"class":1116},[1079,19443,19444,19446,19448,19450,19452,19454],{"class":1081,"line":8350},[1079,19445,2100],{"class":1224},[1079,19447,16575],{"class":1228},[1079,19449,1232],{"class":1224},[1079,19451,1747],{"class":1116},[1079,19453,3305],{"class":1957},[1079,19455,1757],{"class":1116},[1079,19457,19458,19460,19462,19464,19466,19468,19470,19472],{"class":1081,"line":8356},[1079,19459,2100],{"class":1224},[1079,19461,7480],{"class":1228},[1079,19463,1232],{"class":1224},[1079,19465,1747],{"class":1116},[1079,19467,1750],{"class":1096},[1079,19469,1181],{"class":1116},[1079,19471,7480],{"class":1190},[1079,19473,16044],{"class":1116},[1079,19475,19476,19478,19480,19482,19484,19486,19488,19490,19492,19494],{"class":1081,"line":8402},[1079,19477,2100],{"class":1224},[1079,19479,19255],{"class":1228},[1079,19481,1232],{"class":1224},[1079,19483,1747],{"class":1116},[1079,19485,6086],{"class":1096},[1079,19487,1181],{"class":1116},[1079,19489,7777],{"class":1190},[1079,19491,3737],{"class":1116},[1079,19493,19270],{"class":1190},[1079,19495,1852],{"class":1116},[1079,19497,19498],{"class":1081,"line":8407},[1079,19499,2140],{"class":1116},[1079,19501,19502],{"class":1081,"line":8430},[1079,19503,5012],{"class":1096},[1079,19505,19506,19508,19510,19512,19514],{"class":1081,"line":8441},[1079,19507,9018],{"class":1092},[1079,19509,1750],{"class":1096},[1079,19511,1181],{"class":1116},[1079,19513,7480],{"class":1190},[1079,19515,5352],{"class":1116},[1079,19517,19518,19521,19523,19525,19527,19529,19531,19533,19535,19537],{"class":1081,"line":8456},[1079,19519,19520],{"class":1096},"            final_status",[1079,19522,7940],{"class":1116},[1079,19524,1232],{"class":1224},[1079,19526,1639],{"class":1228},[1079,19528,1232],{"class":1224},[1079,19530,16165],{"class":1116},[1079,19532,2045],{"class":1116},[1079,19534,1750],{"class":1096},[1079,19536,1181],{"class":1116},[1079,19538,16174],{"class":1184},[1079,19540,19541,19543],{"class":1081,"line":8463},[1079,19542,9082],{"class":1092},[1079,19544,3572],{"class":1116},[1079,19546,19547,19549,19551,19553,19555,19557,19559,19561,19563,19565,19567,19569,19571],{"class":1081,"line":8482},[1079,19548,19520],{"class":1096},[1079,19550,7940],{"class":1116},[1079,19552,1232],{"class":1224},[1079,19554,6611],{"class":1228},[1079,19556,1232],{"class":1224},[1079,19558,16165],{"class":1116},[1079,19560,2045],{"class":1116},[1079,19562,8100],{"class":3733},[1079,19564,1134],{"class":1116},[1079,19566,1988],{"class":1190},[1079,19568,1181],{"class":1116},[1079,19570,1639],{"class":1184},[1079,19572,1204],{"class":1116},[1079,19574,19575],{"class":1081,"line":8501},[1079,19576,5012],{"class":1096},[1079,19578,19579,19581,19583],{"class":1081,"line":8527},[1079,19580,9018],{"class":1092},[1079,19582,19146],{"class":1096},[1079,19584,3572],{"class":1116},[1079,19586,19587,19590,19592,19595],{"class":1081,"line":8532},[1079,19588,19589],{"class":1190},"            callback",[1079,19591,1134],{"class":1116},[1079,19593,19594],{"class":1190},"final_status",[1079,19596,1204],{"class":1116},[1079,19598,19599],{"class":1081,"line":8537},[1079,19600,5012],{"class":1096},[1079,19602,19603,19605],{"class":1081,"line":8542},[1079,19604,3817],{"class":1092},[1079,19606,19607],{"class":1096}," final_status\n",[1079,19609,19610],{"class":1081,"line":8559},[1079,19611,1511],{"class":1096},[1079,19613,19614,19616,19619,19621,19623],{"class":1081,"line":8564},[1079,19615,3709],{"class":1127},[1079,19617,19618],{"class":1120}," get_worker_statistics",[1079,19620,1134],{"class":1116},[1079,19622,3718],{"class":3717},[1079,19624,1152],{"class":1116},[1079,19626,19627,19629,19632],{"class":1081,"line":8570},[1079,19628,3807],{"class":1158},[1079,19630,19631],{"class":1162},"Get worker performance statistics.",[1079,19633,1166],{"class":1158},[1079,19635,19636],{"class":1081,"line":8588},[1079,19637,19638],{"class":1085},"        # This would depend on your backend implementation\n",[1079,19640,19641,19643],{"class":1081,"line":8593},[1079,19642,3817],{"class":1092},[1079,19644,2048],{"class":1116},[1079,19646,19647,19649,19652,19654,19656,19658],{"class":1081,"line":8599},[1079,19648,2100],{"class":1224},[1079,19650,19651],{"class":1228},"active_workers",[1079,19653,1232],{"class":1224},[1079,19655,1747],{"class":1116},[1079,19657,2274],{"class":1546},[1079,19659,1757],{"class":1116},[1079,19661,19662,19664,19667,19669,19671,19673],{"class":1081,"line":8606},[1079,19663,2100],{"class":1224},[1079,19665,19666],{"class":1228},"total_tasks_processed",[1079,19668,1232],{"class":1224},[1079,19670,1747],{"class":1116},[1079,19672,2274],{"class":1546},[1079,19674,1757],{"class":1116},[1079,19676,19677,19679,19682,19684,19686,19688],{"class":1081,"line":8628},[1079,19678,2100],{"class":1224},[1079,19680,19681],{"class":1228},"average_task_duration",[1079,19683,1232],{"class":1224},[1079,19685,1747],{"class":1116},[1079,19687,2274],{"class":1546},[1079,19689,1757],{"class":1116},[1079,19691,19692,19694,19697,19699,19701],{"class":1081,"line":8651},[1079,19693,2100],{"class":1224},[1079,19695,19696],{"class":1228},"worker_load",[1079,19698,1232],{"class":1224},[1079,19700,1747],{"class":1116},[1079,19702,6375],{"class":1116},[1079,19704,19705],{"class":1081,"line":8667},[1079,19706,2140],{"class":1116},[1079,19708,19709],{"class":1081,"line":8682},[1079,19710,1110],{"emptyLinePlaceholder":1109},[1079,19712,19713],{"class":1081,"line":8687},[1079,19714,19715],{"class":1085},"# WebSocket integration for real-time task updates\n",[1079,19717,19718,19720,19723,19725,19728,19730,19733,19735],{"class":1081,"line":8692},[1079,19719,1093],{"class":1092},[1079,19721,19722],{"class":1096}," channels",[1079,19724,1181],{"class":1116},[1079,19726,19727],{"class":1096},"generic",[1079,19729,1181],{"class":1116},[1079,19731,19732],{"class":1096},"websocket ",[1079,19734,1100],{"class":1092},[1079,19736,19737],{"class":1096}," AsyncWebsocketConsumer\n",[1079,19739,19740,19742],{"class":1081,"line":8699},[1079,19741,1100],{"class":1092},[1079,19743,11853],{"class":1096},[1079,19745,19746],{"class":1081,"line":8716},[1079,19747,1110],{"emptyLinePlaceholder":1109},[1079,19749,19750,19752,19755,19757,19760],{"class":1081,"line":8731},[1079,19751,3176],{"class":1127},[1079,19753,19754],{"class":3394}," TaskProgressConsumer",[1079,19756,1134],{"class":1116},[1079,19758,19759],{"class":3400},"AsyncWebsocketConsumer",[1079,19761,1152],{"class":1116},[1079,19763,19764,19766,19769],{"class":1081,"line":8751},[1079,19765,1159],{"class":1158},[1079,19767,19768],{"class":1162},"WebSocket consumer for real-time task progress updates.",[1079,19770,1166],{"class":1158},[1079,19772,19773],{"class":1081,"line":8771},[1079,19774,1511],{"class":1096},[1079,19776,19777,19780,19783,19786,19788,19790],{"class":1081,"line":8776},[1079,19778,19779],{"class":1127},"    async",[1079,19781,19782],{"class":1127}," def",[1079,19784,19785],{"class":1120}," connect",[1079,19787,1134],{"class":1116},[1079,19789,3718],{"class":3717},[1079,19791,1152],{"class":1116},[1079,19793,19794,19796,19799],{"class":1081,"line":8781},[1079,19795,3807],{"class":1158},[1079,19797,19798],{"class":1162},"Handle WebSocket connection.",[1079,19800,1166],{"class":1158},[1079,19802,19803,19805,19807,19809,19811,19813,19815,19818,19820,19822,19825,19827,19830,19832,19834,19836,19838,19840,19842,19844],{"class":1081,"line":8794},[1079,19804,3754],{"class":2041},[1079,19806,1181],{"class":1116},[1079,19808,1742],{"class":1184},[1079,19810,2045],{"class":1116},[1079,19812,6726],{"class":2041},[1079,19814,1181],{"class":1116},[1079,19816,19817],{"class":1184},"scope",[1079,19819,7940],{"class":1116},[1079,19821,1232],{"class":1224},[1079,19823,19824],{"class":1228},"url_route",[1079,19826,1232],{"class":1224},[1079,19828,19829],{"class":1116},"][",[1079,19831,1232],{"class":1224},[1079,19833,3800],{"class":1228},[1079,19835,1232],{"class":1224},[1079,19837,19829],{"class":1116},[1079,19839,1232],{"class":1224},[1079,19841,1742],{"class":1228},[1079,19843,1232],{"class":1224},[1079,19845,4399],{"class":1116},[1079,19847,19848,19850,19852,19855,19857,19859,19862,19864,19866,19868,19870,19872],{"class":1081,"line":8820},[1079,19849,3754],{"class":2041},[1079,19851,1181],{"class":1116},[1079,19853,19854],{"class":1184},"group_name",[1079,19856,2045],{"class":1116},[1079,19858,1610],{"class":1127},[1079,19860,19861],{"class":1228},"'task_",[1079,19863,1495],{"class":1494},[1079,19865,3718],{"class":2041},[1079,19867,1181],{"class":1116},[1079,19869,1742],{"class":1184},[1079,19871,1501],{"class":1494},[1079,19873,1798],{"class":1228},[1079,19875,19876],{"class":1081,"line":11686},[1079,19877,5012],{"class":1096},[1079,19879,19881],{"class":1081,"line":19880},214,[1079,19882,19883],{"class":1085},"        # Join task group\n",[1079,19885,19887,19890,19892,19894,19897,19899,19902],{"class":1081,"line":19886},215,[1079,19888,19889],{"class":1092},"        await",[1079,19891,6726],{"class":2041},[1079,19893,1181],{"class":1116},[1079,19895,19896],{"class":1184},"channel_layer",[1079,19898,1181],{"class":1116},[1079,19900,19901],{"class":1190},"group_add",[1079,19903,3495],{"class":1116},[1079,19905,19907,19909,19911,19913],{"class":1081,"line":19906},216,[1079,19908,7575],{"class":2041},[1079,19910,1181],{"class":1116},[1079,19912,19854],{"class":1184},[1079,19914,1757],{"class":1116},[1079,19916,19918,19920,19922],{"class":1081,"line":19917},217,[1079,19919,7575],{"class":2041},[1079,19921,1181],{"class":1116},[1079,19923,19924],{"class":1184},"channel_name\n",[1079,19926,19928],{"class":1081,"line":19927},218,[1079,19929,3936],{"class":1116},[1079,19931,19933],{"class":1081,"line":19932},219,[1079,19934,5012],{"class":1096},[1079,19936,19938,19940,19942,19944,19947],{"class":1081,"line":19937},220,[1079,19939,19889],{"class":1092},[1079,19941,6726],{"class":2041},[1079,19943,1181],{"class":1116},[1079,19945,19946],{"class":1190},"accept",[1079,19948,1852],{"class":1116},[1079,19950,19952],{"class":1081,"line":19951},221,[1079,19953,5012],{"class":1096},[1079,19955,19957],{"class":1081,"line":19956},222,[1079,19958,19959],{"class":1085},"        # Send initial task status\n",[1079,19961,19963,19965,19967,19969,19972],{"class":1081,"line":19962},223,[1079,19964,19889],{"class":1092},[1079,19966,6726],{"class":2041},[1079,19968,1181],{"class":1116},[1079,19970,19971],{"class":1190},"send_task_status",[1079,19973,1852],{"class":1116},[1079,19975,19977],{"class":1081,"line":19976},224,[1079,19978,1511],{"class":1096},[1079,19980,19982,19984,19986,19989,19991,19993,19995,19998],{"class":1081,"line":19981},225,[1079,19983,19779],{"class":1127},[1079,19985,19782],{"class":1127},[1079,19987,19988],{"class":1120}," disconnect",[1079,19990,1134],{"class":1116},[1079,19992,3718],{"class":3717},[1079,19994,1141],{"class":1116},[1079,19996,19997],{"class":1137}," close_code",[1079,19999,1152],{"class":1116},[1079,20001,20003,20005,20008],{"class":1081,"line":20002},226,[1079,20004,3807],{"class":1158},[1079,20006,20007],{"class":1162},"Handle WebSocket disconnection.",[1079,20009,1166],{"class":1158},[1079,20011,20013,20015,20017,20019,20021,20023,20026],{"class":1081,"line":20012},227,[1079,20014,19889],{"class":1092},[1079,20016,6726],{"class":2041},[1079,20018,1181],{"class":1116},[1079,20020,19896],{"class":1184},[1079,20022,1181],{"class":1116},[1079,20024,20025],{"class":1190},"group_discard",[1079,20027,3495],{"class":1116},[1079,20029,20031,20033,20035,20037],{"class":1081,"line":20030},228,[1079,20032,7575],{"class":2041},[1079,20034,1181],{"class":1116},[1079,20036,19854],{"class":1184},[1079,20038,1757],{"class":1116},[1079,20040,20042,20044,20046],{"class":1081,"line":20041},229,[1079,20043,7575],{"class":2041},[1079,20045,1181],{"class":1116},[1079,20047,19924],{"class":1184},[1079,20049,20051],{"class":1081,"line":20050},230,[1079,20052,3936],{"class":1116},[1079,20054,20056],{"class":1081,"line":20055},231,[1079,20057,1511],{"class":1096},[1079,20059,20061,20063,20065,20068,20070,20072],{"class":1081,"line":20060},232,[1079,20062,19779],{"class":1127},[1079,20064,19782],{"class":1127},[1079,20066,20067],{"class":1120}," send_task_status",[1079,20069,1134],{"class":1116},[1079,20071,3718],{"class":3717},[1079,20073,1152],{"class":1116},[1079,20075,20077,20079,20082],{"class":1081,"line":20076},233,[1079,20078,3807],{"class":1158},[1079,20080,20081],{"class":1162},"Send current task status.",[1079,20083,1166],{"class":1158},[1079,20085,20087,20089,20091,20093],{"class":1081,"line":20086},234,[1079,20088,18898],{"class":1096},[1079,20090,1175],{"class":1116},[1079,20092,17425],{"class":1190},[1079,20094,1852],{"class":1116},[1079,20096,20098,20101,20103,20105,20107,20110,20112,20114,20116,20118],{"class":1081,"line":20097},235,[1079,20099,20100],{"class":1096},"        task_info ",[1079,20102,1175],{"class":1116},[1079,20104,18928],{"class":1096},[1079,20106,1181],{"class":1116},[1079,20108,20109],{"class":1190},"get_task_info",[1079,20111,1134],{"class":1116},[1079,20113,3718],{"class":2041},[1079,20115,1181],{"class":1116},[1079,20117,1742],{"class":1184},[1079,20119,1204],{"class":1116},[1079,20121,20123],{"class":1081,"line":20122},236,[1079,20124,5012],{"class":1096},[1079,20126,20128,20130,20132,20134,20136,20138,20141,20143,20145,20147,20150],{"class":1081,"line":20127},237,[1079,20129,19889],{"class":1092},[1079,20131,6726],{"class":2041},[1079,20133,1181],{"class":1116},[1079,20135,6528],{"class":1190},[1079,20137,1134],{"class":1116},[1079,20139,20140],{"class":1196},"text_data",[1079,20142,1175],{"class":1116},[1079,20144,2973],{"class":1190},[1079,20146,1181],{"class":1116},[1079,20148,20149],{"class":1190},"dumps",[1079,20151,1733],{"class":1116},[1079,20153,20155,20157,20159,20161,20163,20165,20168,20170],{"class":1081,"line":20154},238,[1079,20156,2100],{"class":1224},[1079,20158,12794],{"class":1228},[1079,20160,1232],{"class":1224},[1079,20162,1747],{"class":1116},[1079,20164,1225],{"class":1224},[1079,20166,20167],{"class":1228},"task_status",[1079,20169,1232],{"class":1224},[1079,20171,1757],{"class":1116},[1079,20173,20175,20177,20179,20181,20183],{"class":1081,"line":20174},239,[1079,20176,2100],{"class":1224},[1079,20178,5909],{"class":1228},[1079,20180,1232],{"class":1224},[1079,20182,1747],{"class":1116},[1079,20184,20185],{"class":1190}," task_info\n",[1079,20187,20189],{"class":1081,"line":20188},240,[1079,20190,20191],{"class":1116},"        }))\n",[1079,20193,20195],{"class":1081,"line":20194},241,[1079,20196,1511],{"class":1096},[1079,20198,20200,20202,20204,20207,20209,20211,20213,20216],{"class":1081,"line":20199},242,[1079,20201,19779],{"class":1127},[1079,20203,19782],{"class":1127},[1079,20205,20206],{"class":1120}," task_progress_update",[1079,20208,1134],{"class":1116},[1079,20210,3718],{"class":3717},[1079,20212,1141],{"class":1116},[1079,20214,20215],{"class":1137}," event",[1079,20217,1152],{"class":1116},[1079,20219,20221,20223,20226],{"class":1081,"line":20220},243,[1079,20222,3807],{"class":1158},[1079,20224,20225],{"class":1162},"Handle task progress updates.",[1079,20227,1166],{"class":1158},[1079,20229,20231,20233,20235,20237,20239,20241,20243,20245,20247,20249,20251],{"class":1081,"line":20230},244,[1079,20232,19889],{"class":1092},[1079,20234,6726],{"class":2041},[1079,20236,1181],{"class":1116},[1079,20238,6528],{"class":1190},[1079,20240,1134],{"class":1116},[1079,20242,20140],{"class":1196},[1079,20244,1175],{"class":1116},[1079,20246,2973],{"class":1190},[1079,20248,1181],{"class":1116},[1079,20250,20149],{"class":1190},[1079,20252,1733],{"class":1116},[1079,20254,20256,20258,20260,20262,20264,20266,20269,20271],{"class":1081,"line":20255},245,[1079,20257,2100],{"class":1224},[1079,20259,12794],{"class":1228},[1079,20261,1232],{"class":1224},[1079,20263,1747],{"class":1116},[1079,20265,1225],{"class":1224},[1079,20267,20268],{"class":1228},"progress_update",[1079,20270,1232],{"class":1224},[1079,20272,1757],{"class":1116},[1079,20274,20276,20278,20280,20282,20284,20286,20288,20290,20292,20294],{"class":1081,"line":20275},246,[1079,20277,2100],{"class":1224},[1079,20279,5909],{"class":1228},[1079,20281,1232],{"class":1224},[1079,20283,1747],{"class":1116},[1079,20285,20215],{"class":1190},[1079,20287,7940],{"class":1116},[1079,20289,1232],{"class":1224},[1079,20291,5909],{"class":1228},[1079,20293,1232],{"class":1224},[1079,20295,4399],{"class":1116},[1079,20297,20299],{"class":1081,"line":20298},247,[1079,20300,20191],{"class":1116},[1026,20302,20303],{},"Django's Tasks framework provides a powerful, built-in solution for handling background tasks without external dependencies. It offers flexible backend options, comprehensive task management capabilities, and seamless integration with Django's ecosystem. The framework is particularly well-suited for applications that need reliable task processing without the complexity of setting up external message brokers or task queues.",[18968,20305,20306],{},"html pre.shiki code .s9Tkl, html code.shiki .s9Tkl{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#758575DD;--shiki-dark-font-style:inherit}html pre.shiki code .siDh9, html code.shiki .siDh9{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#4D9375;--shiki-dark-font-style:inherit}html pre.shiki code .sftqT, html code.shiki .sftqT{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .soVBu, html code.shiki .soVBu{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .sljsM, html code.shiki .sljsM{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .s5Kfy, html code.shiki .s5Kfy{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .sCyAa, html code.shiki .sCyAa{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#DBD7CAEE;--shiki-dark-font-style:inherit}html pre.shiki code .sm7ve, html code.shiki .sm7ve{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#B5695977;--shiki-default-font-style:inherit;--shiki-dark:#C98A7D77;--shiki-dark-font-style:inherit}html pre.shiki code .sVyVU, html code.shiki .sVyVU{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B56959;--shiki-default-font-style:inherit;--shiki-dark:#C98A7D;--shiki-dark-font-style:inherit}html pre.shiki code .sBPpx, html code.shiki .sBPpx{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .siWMO, html code.shiki .siWMO{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sqOPj, html code.shiki .sqOPj{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#BD976A;--shiki-dark-font-style:inherit}html pre.shiki code .sbYkP, html code.shiki .sbYkP{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .sTbE_, html code.shiki .sTbE_{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#C98A7D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJdAF, html code.shiki .sJdAF{--shiki-light:#6182B8;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s3h35, html code.shiki .s3h35{--shiki-light:#F76D47;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .s7CZa, html code.shiki .s7CZa{--shiki-light:#F76D47;--shiki-default:#2F798A;--shiki-dark:#4C9A91}html pre.shiki code .sVsLi, html code.shiki .sVsLi{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#CB7676}html pre.shiki code .s8XtY, html code.shiki .s8XtY{--shiki-light:#39ADB5;--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .se3Ec, html code.shiki .se3Ec{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sD-vU, html code.shiki .sD-vU{--shiki-light:#E2931D;--shiki-default:#2E8F82;--shiki-dark:#5DA994}html pre.shiki code .sYn-s, html code.shiki .sYn-s{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .sFGJz, html code.shiki .sFGJz{--shiki-light:#E53935;--shiki-default:#A65E2B;--shiki-dark:#C99076}html pre.shiki code .sRjD_, html code.shiki .sRjD_{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#DBD7CAEE;--shiki-dark-font-style:inherit}html pre.shiki code .sa2tF, html code.shiki .sa2tF{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#B8A965}html pre.shiki code .s131V, html code.shiki .s131V{--shiki-light:#90A4AE;--shiki-default:#998418;--shiki-dark:#B8A965}",{"title":1074,"searchDepth":1082,"depth":1089,"links":20308},[20309,20314,20319,20324,20328],{"id":1032,"depth":1089,"text":1033,"children":20310},[20311,20312,20313],{"id":1037,"depth":1106,"text":1038},{"id":1066,"depth":1106,"text":1067},{"id":1385,"depth":1106,"text":1386},{"id":2012,"depth":1089,"text":2013,"children":20315},[20316,20317,20318],{"id":2016,"depth":1106,"text":2017},{"id":3325,"depth":1106,"text":3326},{"id":4029,"depth":1106,"text":4030},{"id":4747,"depth":1089,"text":4748,"children":20320},[20321,20322,20323],{"id":4751,"depth":1106,"text":4752},{"id":6024,"depth":1106,"text":6025},{"id":8826,"depth":1106,"text":8827},{"id":11698,"depth":1089,"text":11699,"children":20325},[20326,20327],{"id":11702,"depth":1106,"text":11703},{"id":13648,"depth":1106,"text":13649},{"id":15855,"depth":1089,"text":15856,"children":20329},[20330,20331],{"id":15859,"depth":1106,"text":15860},{"id":17344,"depth":1106,"text":17345},"md",null,{},{"title":733,"description":1028},"rI-eueO0a7Asn3w4up7MK6g_zueqikvECO6dOJNprSg",[20338,20340],{"title":729,"path":730,"stem":731,"description":20339,"children":-1},"Django's asynchronous support enables building high-performance applications that can handle concurrent operations efficiently. This chapter covers async views, async safety considerations, and adapter functions that bridge synchronous and asynchronous code.",{"title":737,"path":738,"stem":739,"description":20341,"children":-1},"Deploying Django applications to production requires careful planning, proper configuration, and robust infrastructure. This comprehensive guide covers everything from preparing your application for production to implementing scalable deployment architectures, monitoring systems, and backup strategies. Whether you're deploying a simple web application or a complex microservices architecture, this section provides production-ready patterns and best practices.",1772474950805]