سؤال

أحاول القيام بتحميلات صور متعددة عبر <cffileupload> بطاقة شعار. تستدعي العلامة ملفًا يسمى fileupload.cfm لمعالجة / وضع اللمسات الأخيرة على الصورة.

داخل تلك الصورة ، أريد أن أبدأ مؤشر ترابط (هنا هو المكان الذي قد لا أفهم فيه الخيط ، لذلك اسمحوا لي أن أعرف) حتى أتمكن من الرد آخر دقيقة أو نحو ذلك ، اعتمادًا على حجم الملف).

حتى الآن أضفت شيئًا مثل:

<!--- BUILD A THREAD TO CREATE / GENERATE THUMBNAILS --->
<cfthread action="run" name="t#qMid.mid#">
    <cfinvoke component="core.media-functions" method="generateThumbnails">
        <cfinvokeargument name="mid" value="#qMid.mid#">
    </cfinvoke> 
</cfthread>

أنا أتصل generateThumbnails الطريقة ، واستخدام أ media id (mid) كمرجع على أي عنصر للمعالجة. أعتقد أن الموضوع يموت بمجرد وصولنا إلى نهاية fileupload.cfm ملف.

لست متأكدًا مما إذا كان هذا مجرد شيء يجب أن أحاول تشغيله بعد تحميل جميع الملفات؟

أفكار؟ لست متأكدًا من كيفية العمل بشكل صحيح.

تعديل

بعد بعض العبث ، يبدو أن لدي خطأ لا علاقة له بالخيط الذي قمت بإصلاحه ، لكن هل يجب أن أضع أي شيء في الاعتبار مع خيوط "ترك" مثل هذا؟ هل يجب أن أقتلهم في مرحلة ما؟ هل سيتم تنظيفهم بعد الانتهاء؟ كيف يمكنني وضع "وقت تنفيذ الحد الأقصى" على موضوع؟

هل كانت مفيدة؟

المحلول

إذا قمت بتشغيل موضوع ولم تتصل فعليًا <cfthread action="join" /> في وقت ما في وقت لاحق ، سيتم تشغيل مؤشر الترابط ، بالتوازي مع مؤشر ترابط تنفيذ الصفحة ، وإذا لزم الأمر سيتم تشغيله لفترة أطول بكثير حتى يكمل مهمته.

لا توجد مشكلة في ترك المواضيع تعمل مثل هذا - سيتم تنظيفها كما تتوقع بمجرد اكتمالها.

إذا كنت تريد معرفة ما إذا كان موضوع يعمل فقط cfstat التي ستسرد جميع طلبات التشغيل - حتى تلك التي بدأت بها cfthread.

ربما تكون قد رأيت مستندات CF هنا لكن علاوة على ذلك ، تحقق من تحقيق بن نادال هنا.

بالنسبة لمهلات مؤشرات الترابط - يمكنك تحديد وقت أقصى وقت لانتظار مؤشرات الترابط التي قمت بإنشائها للانضمام إلى تنفيذ الصفحة ، ولكن لا توجد طريقة لوضع مهلة (مثل مهلة طلب الصفحة) على الموضوع الذي أنشأته.

امل ان يساعد!

نصائح أخرى

ملاحظة واحدة:

تتحدث المستندات عن "صفر أو أكثر من سمات التطبيق الخاصة". أود الانتباه إلى هذا. هذا ينشئ نسخة محلية من المتغير ، مما يتيح لك تمرير القيم التي لن يتم تغييرها.

لذا ، سأتصل

<cfthread action="run" name="t#qMid.mid#" mid="#qMid.mid#">
    <cfinvoke component="core.media-functions" method="generateThumbnails">
        <cfinvokeargument name="mid" value="#mid#">
    </cfinvoke> 
</cfthread>

منطقي؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top