هدف
یک فایل بزرگ داریم و می خواهیم بذاریمش برای دانلود ولی می خواهیم پهنای باندی که برای دانلود به آن اختصاص داده می شود سبب اختلال در برنامه های اصلی مانند کاوشگر وب و برنامه های دیگر نشود و فقط در پس زمینه باشد و از پهنای باند بیکار استفاده کند.
برای این کار می توانیم از سرویسی که یکی از اجزای ویندوز هست استفاده کنیم.
توجه کنید که در ارتباط با سرعتهای دایل آپ با دو نفر هم که چت کنیم سرعت اینترنت می خوابه و خیلی دیگه پس زمینه و پیش زمنیه مطرح نیست..
معرفی
سرویس BITS مخفف Background Intelligent Transfer Service است. این سرویس یکی از اجزای ویندوز است و امکان انتقال فایل به صورت اولویت بندی شده، با پهنای باند تنظیم شونده، و ناهمگام (Async.) را می دهد.
این سرویس در ویندوز معمولا توسط Windows Update برای دانلود بروز رسانی ها بکار گرفته می شود، هرچند نرم افزارهای غیر مایکروسافتی اندکی هم مانند Google Gears از آن استفاده می کنند.
برای اطلاعات بیشتر به
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مراجعه کنید. یا به صفحه آن در وبسایت مایکروسافت در
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بروید.
این سرویس در ویندوزهای XP به بعد وجود دارد.
قبل از ادامه در برنامه Services (services.msc) مطمئن شوید که سرویس به نام Background Intelligent Transfer Service (BITS) فعال هست یا نه.
روش
اینجا می خواهم یک ابزار مناسب را برای استفاده از BITS معرفی کنم.
نرم افزار WinBITS که از
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
قابل دانلود است.
دو حالت دانلود هست یکی با Installer و دیگری بدون Installer و به صورت ZIP (یعنی فولدری که توش install شده را زیپ کرده).
من خودم ویستا داشتم و وقتی حالت installer را انتخاب کردم یه خطا داد که .Net Framwork 1.1.4322 (چون طرف موقع build برنامه تعیین کرده این نسخه به طور خاص باید نصب باشه و با بالاتر یا پایین تر کار نمی کنه) باید نصب شه و از آنجا که در ویستا به خودی خود .net Framework 3 نصب هست من حالت زیپ شده رو دانلود کرده و بدون مشکل کار کرد.
با اجرای WinBITS یک صفحه میاد بالا که Jobهای BITS که از سوی User شما در ویندوز راه افتاده را نشان میده.
حالا Add New Job را بزنید و یک اسم برای Job جدید بگذارید مثلا "DriverDownloads" بعدش می تونید به این Job تعدادی URL فایل اضافه کنید. فولدری را که فایلهای این Job در آن می رود را نیز می توانید مشخص کنید یا برای هر URL این Job فولدر متفاوتی انتخاب کنید. حال اولویتی برای این Job انتخاب میکنید. بیشترین اولویت Foreground است، یعنی این Job در حد برنامه های دیگر است و در آن صورت دیگر از پهنای باند خالی استفاده نمی کند بلکه مانند بقیه برنامه ها عمل می کند. اولویتهای پایین تر از پهنای باند خالی استفاده می کنند. به علاوه اگر چند Job هم اولویت باشند، به صورت round robin (نوبت گردشی) به آنها نوبت دانلود داده می شود .در آخر هم Add this Job را می زنید تا Jobتان اضافه شود.
بعد از اضافه کردن Job نیز می توانید اولویت آن را تغییر داده یا آن را معلق کنید.
کلا برنامه خیلی سبک و ساده ای هست و می توانید خودتان باهاش ور برید، خیلی پیچیده نیست.
توجه کنید که این برنامه فقط یک مانیتور برای BITS هست و برای دانلود فایلها لازم نیست در حال اجرا باقی بماند.
بعد از تمام شدن انتقال در حالت پیش فرض باید WINBits را باز کنید و روی Job پایان یافته دبل کلیک کنید. تا قبل از اینکار فایل (ها) ی انتقال یافته در پوشه مقصدی که مشخص کرده بودید ظاهر نمی شوند. برای اینکه لازم نباشد این کار را بکنید گزینه auto complete jobs را در صفحه Options آن تیک بزنید
تنظیمات از طریق کنسول
اگر کنسول (cmd) را باز کنید، می توانید با استفاده از دستور
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به صورت کنسولی BITS را مدیریت کنید. البته این فقط به درد script نوشتن می خورد ولی یک نکته ای که من باهاش برخورد کردم این بود که یک Job با اولویت Normal ساختم و دیدم وضعیتش Queued هست و می خواستم ببینم چه Job دیگه ای جلو تر از اون تو صف هست.
برای همین دستور
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
را زدم. توجه کنید که حتما سوئیچ /allusers را باید بزنید چون Jobهای دیگه ای که جلوی Job من بودم از طرف user من معرفی نشده بودند و اگرنه تو WinBITS دیده می شدند بلکه از طرف user داخلی سیستمی ویندوز به نام NT Authority\System بودند. به هر حال با زدن این دستور من دیدم که چند تا Job از Windows update تو صف بودند.
اینجا می توانیم با همان bitsadmin ، با سوئیج /reset ما Jobهای دیگر را تعطیل کنیم. برای دیدن همه سوئیچ های آن می توانید bitsadmin را بدون هیچ پارامتر و سوئیچ اجرا کنید.
حالا بعد از معرفی Jobتون می تونین WINBits رو ببندید و ویندوز خودش در پس زمینه و با استفاده از پهنای باند بیکار مانده، فایل را دانلود می کنه. دانلود به هر دلیلی هم اگر قطع بشه یا سیستم را restart کنید خودش resume بعدا می کند.