Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
DisableGoogleAnalytics
https://gitlab.com/adrian.m.miller/disablegoogleanalytics
Attempts To Disable Common Google Analytics And Ads Receivers In All Affected Packages
What it does/How it works:
On 1st run after rebooting after install the module is assuming you want it to disable the listed analytics and ad receivers, so it will:
Wait till boot is completed
Then sleep for 2 minutes
Then test that cpu usage is under 30% before running
It will then disable the analytics and ad receivers as listed below, and log its progress to /sdcard/fixgoogleanalytics.log
Common Analytics And Ad Recievers:
com.google.android.gms.analytics.AnalyticsJobServicecom.google.android.gms.analytics.CampaignTrackingServicecom.google.android.gms.measurement.AppMeasurementServicecom.google.android.gms.measurement.AppMeasurementJobServicecom.google.android.gms.analytics.AnalyticsReceivercom.google.android.gms.analytics.CampaignTrackingReceivercom.google.android.gms.measurement.AppMeasurementInstallReferrerReceivercom.google.android.gms.measurement.AppMeasurementReceivercom.google.android.gms.measurement.AppMeasurementContentProvidercom.crashlytics.android.CrashlyticsInitProvidercom.google.android.gms.ads.AdActivitycom.google.firebase.iid.FirebaseInstanceIdService
Once complete the service.sh script will delete itself
Once that happens any further interaction is purely via the included dga script as a binary in /system/(x)bin
dga takes 2 arguments, disable or enable, though i doubt too many will be looking to enable analytics and ad receivers, unless the disabling has unwanted effects on their system, which is high time to include the usual disclaimer that you run this at your own risk and not even dga enable is garaunteed to undo the changes
Module Installation:
Download from Releases
Install the module via #Magisk app/Fox Magisk Module Manager/MRepo
Reboot
Usage:
After first run optmization has completed, any further interaction is purely via the included dga script as a binary
in /system/(x)bin:
dga takes 2 arguments, disable or enable, though i doubt too many will be looking to enable
analytics and ad receivers, unless the disabling has unwanted effects on their system, which
is high time to include the usual disclaimer that you run this at your own risk and not even
dga enable is garaunteed to undo the changes
Uninstall Note: Uninstalling the module will not reverse the changes, if your intention is to uninstall the module and re-enable the
analytics and ad receivers, please run dga enable first
Magisk 19.3
- [MagiskHide] Значительно улучшена реализация монитора процессов, теперь это не должно вызывать 100% сбои ЦП
- [MagiskInit] Ожидание подготовки разделов к раннему монтированию, чтобы исправить бутлупы на некоторых устройствах
- [MagiskInit] Поддержка файловой системы EROFS, используемой в EMUI 9.1
- [MagiskSU] Правильно реализована изоляция пространства имён монтирования
- [MagiskBoot] Правильный расчет контрольной суммы для заголовка v2
#magisk
#Magisk fork by TheHitMan7 keeping the removed "Magisk Hide" functionality
Repository:
https://github.com/TheHitMan7/Magisk
Files:
https://github.com/TheHitMan7/Magisk-Files
Or
https://t.me/magiskcustom
Discussion:
https://t.me/custommagisk
Remember that Google corporation bought Magisk developer and extorted him to remove that functionality:
https://t.me/NoGoolag/5202
https://t.me/NoGoolag/5229
https://t.me/NoGoolag/7628
https://t.me/NoGoolag/7712