Мутации AWS AppSync Offline обновляются на сервере несколько раз, когда устройство подключено к сети.

Я использую AWS AppSync Android SDK в своем проекте, и я заметил проблему, заключающуюся в том, что когда я запускаю мутацию, она работает нормально, если устройство подключено к сети, но если я выполняю автономную мутацию, а затем включаю свою сеть, одна и та же мутация обновляется на сервере несколько раз. Так что у меня много повторяющихся записей в моей БД.

Пробовал разные сценарии, но автономные обновления вызываются дважды или трижды после установления сетевого подключения.

//Класс конфигурации AppSyncClient

класс ClientFactory {

companion object {
    @Volatile
    private var mAWSAppSyncClient: AWSAppSyncClient? = null        
    private var cacheKeyResolver: CacheKeyResolver? = null
    private var appSyncSqlHelper: AppSyncSqlHelper?=null
    private var mNormalizedCacheFactory: SqlNormalizedCacheFactory?=null
    var  client:OkHttpClient?=null

    private lateinit var interceptor: HttpLoggingInterceptor
    @Synchronized
    fun getInstance(context: Context,utoken:String, dbName:String): AWSAppSyncClient? {
        if (cacheKeyResolver == null){
            cacheKeyResolver = object : CacheKeyResolver() {
                override fun fromFieldRecordSet(field: ResponseField, recordSet: Map<String, Any>): CacheKey {
                    val typeName = recordSet["__typename"] as String
                    if ("MessagesResponse" == typeName) {
                        val userKey = typeName + "." + recordSet["login"]
                        return CacheKey.from(userKey)
                    }
                    if (recordSet.containsKey("id")) {
                        val typeNameAndIDKey = recordSet["__typename"].toString() + "." + recordSet["id"]
                        return CacheKey.from(typeNameAndIDKey)
                    }
                    return CacheKey.NO_KEY
                }

                override fun fromFieldArguments(field: ResponseField, variables: Operation.Variables): CacheKey {
                    return CacheKey.NO_KEY
                }
            }
    }

        interceptor = HttpLoggingInterceptor()
        interceptor.level = HttpLoggingInterceptor.Level.BODY
        appSyncSqlHelper = AppSyncSqlHelper.create(context, dbName)
        mNormalizedCacheFactory =  SqlNormalizedCacheFactory(appSyncSqlHelper)

        if(client==null) {
            val cacheSize = 10 * 1024 * 1024 // 10MB
            client =
                OkHttpClient.Builder().cache(Cache(context.cacheDir, cacheSize.toLong())).addInterceptor(interceptor)
                    .addNetworkInterceptor { chain ->
                        val newRequest = chain.request().newBuilder()
                            .addHeader("Authorization", "Bearer ".plus(utoken))
                            .build()
                        chain.proceed(newRequest)
                    }.build()
        }

        val awsConfig = AWSConfiguration(context)
            mAWSAppSyncClient = AWSAppSyncClient.builder()
                .context(context)
                .okHttpClient(client)
                .normalizedCache(mNormalizedCacheFactory)
                .resolver(cacheKeyResolver)
                .persistentMutationsCallback(object : PersistentMutationsCallback {
                    override fun onFailure(error: PersistentMutationsError?)
                    {
                        Log.v("dd","ff")
                    }
                    override fun onResponse(response: PersistentMutationsResponse?)
                    {
                        Log.v("dd","ff")
                    }
                })
                .awsConfiguration(awsConfig)
                .build()
        return mAWSAppSyncClient
    }       
}

}

// Реализация мутации

        val graphqlCallback = object : GraphQLCall.Callback<MessageActivityMutation.Data>() {
            override fun onResponse(response: Response<MessageActivityMutation.Data>) {
                if(response!=null){}                        
            }
            override fun onFailure(e: ApolloException) {
                e.printStackTrace()                   
            }
        }
        ClientFactory.getInstance(thiscontext!!,preferencesHelper!!.userAuthToken,"messageackmutation_db")
            ?.mutate(MessageActivityMutation.builder()
            .id(msg_id)
            .verb(Constants.MESSAGE_ACKNOWLEDGED)
            .actioned_at(timeStamp)
            .build())
            ?.enqueue(graphqlCallback)

ДЕТАЛИ ЛОГКАТА***

******ПОСЛЕ ВКЛЮЧЕНИЯ СЕТИ*******

Я думаю, что нашел ответ, но не совсем уверен, почему это происходит. Дело в том, что помимо переопределения

companion object {
    @Volatile
    private var mAWSAppSyncClient: AWSAppSyncClient? = null        
    private var cacheKeyResolver: CacheKeyResolver? = null
    private var appSyncSqlHelper: AppSyncSqlHelper?=null
    private var mNormalizedCacheFactory: SqlNormalizedCacheFactory?=null
    var  client:OkHttpClient?=null

    private lateinit var interceptor: HttpLoggingInterceptor
    @Synchronized
    fun getInstance(context: Context,utoken:String, dbName:String): AWSAppSyncClient? {
        if (cacheKeyResolver == null){
            cacheKeyResolver = object : CacheKeyResolver() {
                override fun fromFieldRecordSet(field: ResponseField, recordSet: Map<String, Any>): CacheKey {
                    val typeName = recordSet["__typename"] as String
                    if ("MessagesResponse" == typeName) {
                        val userKey = typeName + "." + recordSet["login"]
                        return CacheKey.from(userKey)
                    }
                    if (recordSet.containsKey("id")) {
                        val typeNameAndIDKey = recordSet["__typename"].toString() + "." + recordSet["id"]
                        return CacheKey.from(typeNameAndIDKey)
                    }
                    return CacheKey.NO_KEY
                }

                override fun fromFieldArguments(field: ResponseField, variables: Operation.Variables): CacheKey {
                    return CacheKey.NO_KEY
                }
            }
    }

        interceptor = HttpLoggingInterceptor()
        interceptor.level = HttpLoggingInterceptor.Level.BODY
        appSyncSqlHelper = AppSyncSqlHelper.create(context, dbName)
        mNormalizedCacheFactory =  SqlNormalizedCacheFactory(appSyncSqlHelper)

        if(client==null) {
            val cacheSize = 10 * 1024 * 1024 // 10MB
            client =
                OkHttpClient.Builder().cache(Cache(context.cacheDir, cacheSize.toLong())).addInterceptor(interceptor)
                    .addNetworkInterceptor { chain ->
                        val newRequest = chain.request().newBuilder()
                            .addHeader("Authorization", "Bearer ".plus(utoken))
                            .build()
                        chain.proceed(newRequest)
                    }.build()
        }

        val awsConfig = AWSConfiguration(context)
            mAWSAppSyncClient = AWSAppSyncClient.builder()
                .context(context)
                .okHttpClient(client)
                .normalizedCache(mNormalizedCacheFactory)
                .resolver(cacheKeyResolver)
                .persistentMutationsCallback(object : PersistentMutationsCallback {
                    override fun onFailure(error: PersistentMutationsError?)
                    {
                        Log.v("dd","ff")
                    }
                    override fun onResponse(response: PersistentMutationsResponse?)
                    {
                        Log.v("dd","ff")
                    }
                })
                .awsConfiguration(awsConfig)
                .build()
        return mAWSAppSyncClient
    }       
}
и
        val graphqlCallback = object : GraphQLCall.Callback<MessageActivityMutation.Data>() {
            override fun onResponse(response: Response<MessageActivityMutation.Data>) {
                if(response!=null){}                        
            }
            override fun onFailure(e: ApolloException) {
                e.printStackTrace()                   
            }
        }
        ClientFactory.getInstance(thiscontext!!,preferencesHelper!!.userAuthToken,"messageackmutation_db")
            ?.mutate(MessageActivityMutation.builder()
            .id(msg_id)
            .verb(Constants.MESSAGE_ACKNOWLEDGED)
            .actioned_at(timeStamp)
            .build())
            ?.enqueue(graphqlCallback)
в вашей мутации вам нужно переопределить другой метод, то есть _3_, и очистить очередь мутаций. Я считаю, что он вызывается дважды или трижды, иногда один раз для планирования и один раз для сети.

Надеюсь, поможет.


person Sreejith N    schedule 28.10.2019    source источник


Ответы (1)


Tallal Tasawar Пробовал это, но та же проблема все еще существует. Спасибо!

override fun onStatusEvent(event: GraphQLCall.StatusEvent) {
                    super.onStatusEvent(event)
                    awsAppSyncClient.clearMutationQueue()
                }

В идеале вы должны обрабатывать этот множитель на серверной части с помощью идентификатора, и серверная часть должна проверять, существует ли уже идентификатор, и не должна рассматривать его как новую запись.

person Tallal Tasawar    schedule 04.11.2019
comment
2019-10-25 17:57:35.180 5403-8062/com.envoyer.app D/AppSyncOfflineMutationManager: Thread:[23616]: Интернет ОТКЛЮЧЕН. 25.10.2019 17:57:35.196 5403-5403/com.envoyer.app I/timberLog: Info-->Обычный или R&AK с вложениями 25.10.2019 17:57:35.218 5403-5403/com.envoyer. app V/PersistentOfflineMutationManager: Thread:[2]:In Constructor 2019-10-25 17:57:35.218 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:Priming the pump — Извлечение всех поставленных в очередь мутации из постоянного хранилища 2019-10-25 17:57:35.218 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]: Получение всех запросов на мутации из постоянного хранилища 2019-10-25 17:57: 35.220 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]: Выход из конструктора. В постоянной очереди есть [0] мутаций. 57:35.235 5403-5403/com.envoyer.app V/AppSyncOfflineMutationInterceptor: Thread:[2]: Обработка мутации. 2019-10-25 17:57:35.235 5403-5403/com.envoyer.app V/AppSyncOfflineMutationInterceptor: Thread:[2]: Сначала проверьте, не возникла ли конфликт при повторной попытке мутации. 25.10.2019 17:57:35.235 5403-5403/com.envoyer.app V/AppSyncOfflineMutationInterceptor: Thread:[2]:Нет, конфликт не обнаружен 25.10.2019 17:57:35.237 5403-5403/ com.envoyer.app V/AppSyncOfflineMutationManager: Thread:[2]: Добавлена ​​мутация[7ce851b7-fb8e-4ec2-ac49-4b603ca13acd] в очередь inMemory 2019-10-25 17:57:35.237 5403-5403/com.envoyer.app V/S3ObjectManagerImplementation: Thread:[2]: Просмотр ключа [id] типа [Integer] 25.10.2019 17:57:35.239 5403-5403/com.envoyer.app V/S3ObjectManagerImplementation: Thread:[2]: Просмотр Key [глагол] типа [String] 25.10.2019 17:57:35.242 5403-5403/com.envoyer.app V/S3ObjectManagerImplementation: Thread:[2]: Просмотр Key [actioned_at] типа [String ]. ":" мутация MessageActivity($id: Int, $verb: String, $actioned_at: String) {  MessageActivity(id: $id, verb: $verb, actioned_at: $actioned_at) {    __typename    status              сообщение  }}","variables":{"id":1833,"verb":"message.seen","action_at ":"2019-10-25 12:27:35"}} 2019-10-25 17:57:35. 263 5403-5403/com.envoyer.app V/AppSyncOfflineMutationManager: Тема:[2]: добавлена ​​мутация[7ce851b7-fb8e-4ec2-ac49-4b603ca13acd] в постоянную очередь. Объекты S3 не найдены 2019-10-25 17:57:35.263 5403-5403/com.envoyer.app V/AppSyncOfflineMutationManager: Тема: [2]: созданы как записи в памяти, так и постоянные записи. Теперь перейдем к обработчику очереди сигналов. 2019-10-25 17:57:35.263 5403-8068/com.envoyer.app V/QueueUpdateHandler: Тема: [23622]: Получено сообщение о принятии мер в очереди мутаций. 2019-10-25 17:57:35.263 5403-8068/com.envoyer.app V/QueueUpdateHandler: Тема: [23622]: Получено сообщение для обработки следующей мутации, если она существует. 25.10.2019 17:57:35.264 5403-8068/com.envoyer.app V/AppSyncOfflineMutationManager: Тема:[23622]: Интернет недоступен. Выход 2019-10-25 17:57:35.281 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:In Constructor 2019-10-25 17:57:35.281 5403-5403/com.envoyer. app V/PersistentOfflineMutationManager: Thread:[2]:Priming the pump — получение всех мутаций в очереди из постоянного хранилища 2]: Получение всех запросов на изменение из постоянного хранилища 2019-10-25 17:57:35.283 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:Выход из конструктора. В постоянной очереди есть [1] мутаций. 57:35.331 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:In Constructor 2019-10-25 17:57:35.331 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[ 2]:Priming the pump — Получение всех мутаций в очереди из постоянного хранилища постоянное хранилище 2019-10-25 17:57:35.333 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:Выход из конструктора. В постоянной очереди есть [1] мутаций. 57:35.357 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:In Constructor 25.10.2019 17:57:35.358 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[ 2]: Запуск помпы — извлечение всех мутаций из очереди из постоянного хранилища 2019-10-25 17:57:35. 358 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]: Получение всех запросов на изменение из постоянного хранилища 2019-10-25 17:57:35.360 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Тема:[2]:Выход из конструктора. В постоянной очереди есть [1] мутаций. 57:35.415 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:In Constructor 2019-10-25 17:57:35.415 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[ 2]:Priming the pump — Получение всех мутаций в очереди из постоянного хранилища постоянное хранилище 2019-10-25 17:57:35.417 5403-5403/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[2]:Выход из конструктора. В постоянной очереди есть [1] мутаций. 57:35.470 5403-8067/com.envoyer.app D/AppSyncOfflineMutationManager: Thread:[23621]: Интернет ОТКЛЮЧЕН. 25.10.2019 17:57:35.472 5403-8069/com.envoyer.app D/AppSyncOfflineMutationManager: Тема:[23623]: Интернет ОТКЛЮЧЕН. 25.10.2019 17:57:35.472 5403-8071/com.envoyer.app D/AppSyncOfflineMutationManager: Тема:[23625]: Интернет ОТКЛЮЧЕН. 25.10.2019 17:57:35.473 5403-8077/com.envoyer.app D/AppSyncOfflineMutationManager: Тема:[23628]: Интернет ОТКЛЮЧЕН. 2019-10-25 17:57:35.474 5403-8080/com.envoyer.app D/AppSyncOfflineMutationManager: Thread:[23630]: Интернет ОТКЛЮЧЕН. 2019-10-25 17:57:36.103 5403-8054/com.envoyer.app E/timberLog: onError --> Веб-сокет выдал исключение 2019-10-25 17:57:37.759 5403-7658/com. envoyer.app V/AppSyncOfflineMutationInterceptor: Тема: [23596]: обработка мутаций - person Sreejith N; 08.11.2019
comment
‹-- 200 https://4betrpovsffuhjxad5ouxlm6um.appsync-api.eu-west-1.amazonaws.com/graphql (1824 мс) 2019-10-25 17:58:31.140 5403-8282/com.envoyer.app D/OkHttp: content-type: application/json;charset=UTF -8 2019-10-25 17:58:31.140 5403-8282/com.envoyer.app D/OkHttp: content-length: 100 2019-10-25 17:58:31.140 5403-8282/com.envoyer.app D /OkHttp: дата: пятница, 25 октября 2019 г., 12:29:19 GMT 2019-10-25 17:58:31.140 5403-8282/com.envoyer.app D/OkHttp: x-amzn-requestid: e351113d-b8b4-416c -855c-6c28c95f1a98 25-10-2019 17:58:31.140 5403-8282/com.envoyer.app D/OkHttp:x-cache: Miss from cloudfront 25-10-2019 17:58:31.140 5403-8282/com. envoyer.app D/OkHttp: через: 1.1 bae54c9df29d44a26d5e0fd3d2c61c9c.cloudfront.net (CloudFront) 2019-10-25 17:58:31.140 5403-8282/com.envoyer.app D/OkHttp: x-amz-cf-pop: MAA50 -C1 25-10-2019 17:58:31.141 5403-8282/com.envoyer.app D/OkHttp: x-amz-cf-id: Pl8OYaRmtJxPi nPXFbGwcnfgQxyGlWJo1LE0n9_oQprRKeULGsvkCw== 2019-10-25 17:58:31.141 5403-8282/com.envoyer.app D/OkHttp: {"data":{"MessageActivity":{"__typename":"Response","status":true ,"data":"[]","message":"Success"}}} 2019-10-25 17:58:31.141 5403-8282/com.envoyer.app D/OkHttp: ‹-- END HTTP (100 -byte body) 2019-10-25 17:58:31.142 5403-8282/com.envoyer.app V/dd: ff 2019-10-25 17:58:31.142 5403-8282/com.envoyer.app V/PersistentOfflineMutationManager : Тема: [23645]: Удаление мутации [7ce851b7-fb8e-4ec2-ac49-4b603ca13acd] из постоянного хранилища 2019-10-25 17:58:31.209 5403-8054/com.envoyer.app I/DpmTcmClient: RegisterTcmMonitor from: com .android.okhttp.TcmIdleTimerMonitor 25-10-2019 17:58:31.271 5403-8298/com.envoyer.app I/RetryInterceptor: Возврат сетевого ответа: успех 25-10-2019 17:58:31.271 5403-8298/com. envoyer.app D/OkHttp: ‹-- 200 https://4betrpovsffuhjxad5ouxlm6um.appsync-api.eu-west-1.amazonaws.com/graphql (1900 мс) 2019-10-25 17:58:31.271 5403-8298/com.envoyer.app D/OkHttp: content-type: application/json;charset =UTF-8 25-10-2019 17:58:31.272 5403-8298/com.envoyer.app D/OkHttp: длина содержимого: 100 25-10-2019 17:58:31.272 5403-8298/com.envoyer. приложение D/OkHttp: дата: пятница, 25 октября 2019 г. 12:29:19 GMT 2019-10-25 17:58:31.272 5403-8298/com.envoyer.app D/OkHttp: x-amzn-requestid: d0289bd6-3e31 -49a6-815f-a708a1fa2233 2019-10-25 17:58:31.272 5403-8298/com.envoyer.app D/OkHttp:x-cache: Miss from cloudfront 2019-10-25 17:58:31. 272 5403-8298/com.envoyer.app D/OkHttp: через: 1.1 bae54c9df29d44a26d5e0fd3d2c61c9c.cloudfront.net (CloudFront) 2019-10-25 17:58:31.272 5403-8298/com.envoyer.app D:-OkHttp amz-cf-pop: MAA50-C1 25-10-2019 17:58:31.272 5403-8298/com.envoyer.app D/OkHttp: x-amz-cf-id: 7wqu5JSmQJFT9layGkgpXB1WNpx5qD0-ohHF6TNHbU2l8gcBBUs0AQ== 2019 17:58:31.274 5403-8298/com.envoyer.app D/OkHttp: {"data":{"MessageActivity":{"__typename":"Response","status":true,"data":"[] ","message":"Success"}}} 2019-10-25 17:58:31.274 5403-8298/com.envoyer.app D/OkHttp: ‹-- END HTTP (100-байтовое тело) 2019-10- 25 17:58:31.276 5403-8298/com.envoyer.app V/dd: ff 2019-10-25 17:58:31.276 5403-8298/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[23648]:Removing мутация [7ce851b7-fb8e-4ec2-ac49-4b603ca13acd] из постоянного хранилища 25.10.2019 17:58:31.407 5403-8307/com.envoyer.app I/RetryInterceptor: Возврат сетевого ответа: успех 25.10.2019 17: 58:31.408 5403-8307/com.envoyer.app D/OkHttp: ‹-- 200 https://4betrpovsffuhjxad5ouxlm6um.appsync-api.eu-west-1.amazonaws.com/graphql (2007ms) 2019-10-25 17:58:31.408 5403-8307/com.envoyer.app D/OkHttp: content-type: application/json;charset=UTF-8 2019-10-25 17:58 :31.408 5403-8307/com.envoyer.app D/OkHttp: content-length: 100 2019-10-25 17:58:31.408 5403-8307/com.envoyer.app D/OkHttp: дата: пятница, 25 октября 2019 г. 12:29:19 GMT 2019-10-25 17:58:31.408 5403-8307/com.envoyer.app D/OkHttp: x-amzn-requestid: 6a575625-f4fa-4209-ac5c-e47f88297910 2019-10-25 17 :58:31.408 5403-8307/com.envoyer.app D/OkHttp:x-cache: Miss from cloudfront 2019-10-25 17:58:31.409 5403-8307/com.envoyer.app D/OkHttp: via: 1.1 bae54c9df29d44a26d5e0fd3d2c61c9c.cloudfront.net (CloudFront) 2019-10-25 17:58:31.409 5403-8307/com.envoyer.app D/OkHttp: x-amz-cf-pop: MAA50-C1 25-10-2019 17:55 :31.409 5403-8307/com.envoyer.app D/OkHttp: x-amz-cf-id: 1RaLA8-nyDTGsreE4QmtMETeslLvw3PmnHH dMZqzTXsYSjg3Y3kVbQ== 2019-10-25 17:58:31.411 5403-8307/com.envoyer.app D/OkHttp: {"data":{"MessageActivity":{"__typename":"Response","status":true ,"data":"[]","message":"Success"}}} 2019-10-25 17:58:31.411 5403-8307/com.envoyer.app D/OkHttp: ‹-- END HTTP (100 -byte body) 2019-10-25 17:58:31.469 5403-8281/com.envoyer.app I/RetryInterceptor: Возврат ответа сети: успех 2019-10-25 17:58:31.469 5403-8281/com.envoyer. app D/OkHttp: ‹-- 200 https://4betrpovsffuhjxad5ouxlm6um.appsync-api.eu-west-1.amazonaws.com/graphql (2152 мс) 2019-10-25 17:58:31. 469 5403-8281/com.envoyer.app D/OkHttp: тип контента: application/json;charset=UTF-8 2019-10-25 17:58:31.470 5403-8281/com.envoyer.app D/OkHttp: длина содержимого: 100 2019-10-25 17:58:31.470 5403-8281/com.envoyer.app D/OkHttp: дата: пятница, 25 октября 2019 года 12:29:19 по Гринвичу 2019-10-25 17:58: 31.470 5403-8281/com.envoyer.app D/OkHttp: x-amzn-requestid: 509dfabd-008d-477b-8e0d-247c2db21ced 2019-10-25 17:58:31.470 5403-8281/com.envoyer.app D/ OkHttp: x-cache: Miss from cloudfront 2019-10-25 17:58:31.470 5403-8281/com.envoyer.app D/OkHttp: via: 1.1 bae54c9df29d44a26d5e0fd3d2c61c9c.cloudfront.net (CloudFront) 2019-17:-25 58:31.470 5403-8281/com.envoyer.app D/OkHttp: x-amz-cf-pop: MAA50-C1 25.10.2019 17:58:31.470 5403-8281/com.envoyer.app D/OkHttp: x-amz-cf-id: -rdF8loaCHAAmZN8-mRIp9EIYOPJ5ngimAwyisRkoLwXnU_VdrmNAw== 2019-10-25 17:58:31.471 5403-8281/com.envoyer.app D/OkHttp: {"data":{"MessageActivity":{"__typename ":"Ответ","статус":истина,"данные":"[]","сообщение":"Успех"}}} 2019-10-25 17:58:31.471 5403-8 281/com.envoyer.app D/OkHttp: ‹-- END HTTP (тело 100 байт) 2019-10-25 17:58:31.473 5403-8281/com.envoyer.app V/dd: ff 2019-10- 25 17:58:31.473 5403-8281/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[23644]:Удаление мутации [7ce851b7-fb8e-4ec2-ac49-4b603ca13acd] из постоянного хранилища 2019-10-25 17:58: 31.508 5403-8283/com.envoyer.app I/RetryInterceptor: Возврат сетевого ответа: успех 2019-10-25 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: ‹-- 200 https://4betrpovsffuhjxad5ouxlm6um.appsync-api.eu-west-1.amazonaws.com/graphql (2182 мс) 2019-10-25 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: content-type: application/json;charset=UTF-8 2019-10-25 17 :58:31.509 5403-8283/com.envoyer.app D/OkHttp: content-length: 100 2019-10-25 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: дата: Пт, 25 окт 2019 12:29:19 GMT 2019-10-25 17:58:31.509 5403-8283/com.ru voyer.app D/OkHttp: x-amzn-requestid: be28bb94-2788-449d-bc6f-af722e77e6d0 2019-10-25 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: x-cache: Miss из cloudfront 25.10.2019 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: via: 1.1 bae54c9df29d44a26d5e0fd3d2c61c9c.cloudfront.net (CloudFront) 25.10.2019 25:58/58:31.309 com.envoyer.app D/OkHttp: x-amz-cf-pop: MAA50-C1 2019-10-25 17:58:31.509 5403-8283/com.envoyer.app D/OkHttp: x-amz-cf-id : edvrZI0GEB_1DDoikzUVcFjpwwyIGAXl9elEqbgk-_ShvoKsP86kuw== 25-10-2019 17:58:31. 510 5403-8283/com.envoyer.app D/OkHttp: {"data":{"MessageActivity":{"__typename":"Response","status":true,"data":"[]","message ":"Успех"}}} 2019-10-25 17:58:31.511 5403-8283/com.envoyer.app D/OkHttp: ‹-- END HTTP (100-байтовое тело) 2019-10-25 17:58 :31.512 5403-8283/com.envoyer.app V/dd: ff 2019-10-25 17:58:31.512 5403-8283/com.envoyer.app V/PersistentOfflineMutationManager: Thread:[23647]:Удаление мутации [7ce851b7- fb8e-4ec2-ac49-4b603ca13acd] из постоянного хранилища 25.10.2019 17:58:31.685 5403-8282/com.envoyer.app V/QueueUpdateHandler: Тема: [23645]: Установка MutationInProgress как false. - person Tallal Tasawar; 09.12.2019