NTP-66631 | Dark knight worker stability (#16300)
This commit is contained in:
@@ -16,6 +16,7 @@ import coil.ImageLoaderFactory
|
|||||||
import com.navi.base.cache.repository.NaviCacheRepository
|
import com.navi.base.cache.repository.NaviCacheRepository
|
||||||
import com.navi.base.utils.TrustedTimeClientAccessor
|
import com.navi.base.utils.TrustedTimeClientAccessor
|
||||||
import com.navi.bbps.common.model.NaviBbpsManager
|
import com.navi.bbps.common.model.NaviBbpsManager
|
||||||
|
import com.navi.common.utils.log
|
||||||
import com.navi.moneymanager.common.manager.MMLibManager
|
import com.navi.moneymanager.common.manager.MMLibManager
|
||||||
import com.navi.pay.common.setup.NaviPayManager
|
import com.navi.pay.common.setup.NaviPayManager
|
||||||
import com.navi.traceflow.Config
|
import com.navi.traceflow.Config
|
||||||
@@ -97,5 +98,7 @@ open class NaviApplication : BaseApplication(), ImageLoaderFactory, Configuratio
|
|||||||
Configuration.Builder()
|
Configuration.Builder()
|
||||||
.setWorkerFactory(workerFactory = workerFactory.get())
|
.setWorkerFactory(workerFactory = workerFactory.get())
|
||||||
.setMinimumLoggingLevel(if (BuildConfig.DEBUG) Log.DEBUG else Log.ERROR)
|
.setMinimumLoggingLevel(if (BuildConfig.DEBUG) Log.DEBUG else Log.ERROR)
|
||||||
|
.setInitializationExceptionHandler { it.log() }
|
||||||
|
.setWorkerInitializationExceptionHandler { it.throwable.log() }
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,10 +219,10 @@ class NaviPayToContacts @Inject constructor() {
|
|||||||
|
|
||||||
class NaviPayDarkKnightWorker {
|
class NaviPayDarkKnightWorker {
|
||||||
|
|
||||||
fun onDarkKnightTriggered(triggeredTime: String) {
|
fun onDarkKnightTriggered(isTriggeredWithinOffHours: Boolean) {
|
||||||
NaviTrackEvent.trackEventOnClickStream(
|
NaviTrackEvent.trackEventOnClickStream(
|
||||||
eventName = "NaviPay_DarkKnight_Triggered",
|
eventName = "NaviPay_DarkKnight_Triggered",
|
||||||
eventValues = mapOf("triggeredTime" to triggeredTime),
|
eventValues = mapOf("isTriggeredWithinOffHours" to isTriggeredWithinOffHours.toString()),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ constructor(@ApplicationContext private val context: Context) : DarkKnightSchedu
|
|||||||
override suspend fun schedulePeriodicSync() {
|
override suspend fun schedulePeriodicSync() {
|
||||||
|
|
||||||
val constraints =
|
val constraints =
|
||||||
Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
|
Constraints.Builder()
|
||||||
|
.setRequiredNetworkType(networkType = NetworkType.CONNECTED)
|
||||||
|
.setRequiresStorageNotLow(requiresStorageNotLow = true)
|
||||||
|
.build()
|
||||||
|
|
||||||
val initialDelay = calculateInitialDelayInMillis()
|
val initialDelay = calculateInitialDelayInMillis()
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import androidx.hilt.work.HiltWorker
|
|||||||
import androidx.work.CoroutineWorker
|
import androidx.work.CoroutineWorker
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.navi.base.utils.BaseUtils
|
import com.navi.base.utils.BaseUtils
|
||||||
import com.navi.base.utils.DateUtils
|
|
||||||
import com.navi.base.utils.TrustedTimeAccessor
|
import com.navi.base.utils.TrustedTimeAccessor
|
||||||
import com.navi.base.utils.log
|
import com.navi.base.utils.log
|
||||||
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
|
import com.navi.common.firebaseremoteconfig.FirebaseRemoteConfigHelper
|
||||||
@@ -33,7 +32,6 @@ import com.navi.pay.tstore.list.model.view.OrderStatusOfView
|
|||||||
import com.navi.pay.tstore.list.repository.OrderRepository
|
import com.navi.pay.tstore.list.repository.OrderRepository
|
||||||
import com.navi.pay.tstore.utils.error.OrderErrorMappingManager
|
import com.navi.pay.tstore.utils.error.OrderErrorMappingManager
|
||||||
import com.navi.pay.utils.DARK_KNIGHT_WORKER
|
import com.navi.pay.utils.DARK_KNIGHT_WORKER
|
||||||
import com.navi.pay.utils.DATE_TIME_FORMAT_DATE_MONTH_NAME_YEAR_AT_TIME
|
|
||||||
import com.navi.pay.utils.NAVI_PAY_LITMUS_EXPERIMENTS
|
import com.navi.pay.utils.NAVI_PAY_LITMUS_EXPERIMENTS
|
||||||
import com.navi.payments.shared.feature.arc.usecase.ArcNudgeSyncUseCase
|
import com.navi.payments.shared.feature.arc.usecase.ArcNudgeSyncUseCase
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
@@ -81,14 +79,17 @@ constructor(
|
|||||||
return@withContext Result.success()
|
return@withContext Result.success()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val currentHour = DateTime(TrustedTimeAccessor.getCurrentTimeMillis()).hourOfDay
|
||||||
|
val isTriggeredWithinOffHours = currentHour >= 1 && currentHour < 5
|
||||||
|
|
||||||
naviPayAnalytics.onDarkKnightTriggered(
|
naviPayAnalytics.onDarkKnightTriggered(
|
||||||
triggeredTime =
|
isTriggeredWithinOffHours = isTriggeredWithinOffHours
|
||||||
DateUtils.getFormattedDateTimeAsStringFromDateTimeObject(
|
|
||||||
dateTime = DateTime(TrustedTimeAccessor.getCurrentTimeMillis()),
|
|
||||||
format = DATE_TIME_FORMAT_DATE_MONTH_NAME_YEAR_AT_TIME,
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (!isTriggeredWithinOffHours) {
|
||||||
|
return@withContext Result.success()
|
||||||
|
}
|
||||||
|
|
||||||
if (!BaseUtils.isUserLoggedIn()) {
|
if (!BaseUtils.isUserLoggedIn()) {
|
||||||
naviPayAnalytics.onUserNotLoggedIn()
|
naviPayAnalytics.onUserNotLoggedIn()
|
||||||
return@withContext Result.success()
|
return@withContext Result.success()
|
||||||
@@ -172,7 +173,11 @@ constructor(
|
|||||||
tasks.add(
|
tasks.add(
|
||||||
async {
|
async {
|
||||||
commonRepository.fetchNpciKeys(
|
commonRepository.fetchNpciKeys(
|
||||||
metricInfo = getMetricInfo<NpciKeysResponse>(screenName = screenName)
|
metricInfo =
|
||||||
|
getMetricInfo<NpciKeysResponse>(
|
||||||
|
screenName = screenName,
|
||||||
|
isNae = { false },
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user