Это не ответ. Вы б еще на msdn ссылку дали. Уточню вопрос. Дедлок — это ведь про 2 ресурса и 2х клиентов. Он может возникнуть и при синхронных вызовах и при асинхронных. Вот мне интересно, почему именно синхронность создавала дедлоки. Или тут неточность формулировок, или потрудитесь ответить.
Все равно непонятно. Ок. Попробую спросить по-другому. Этот ключ, который объект меню ресторана, физически — это запись в БД? И под "лочит" понимается update lock в БД?
На весь период используется транзакция в базе данных и некий ключ, общий для всех запросов.
Мы работаем, используя транзакцию для консистенции, у двух запросов происходит Contention на ключе общего объекта
Самое обидное, что наименее полезная операция в транзакции, которая залочила ключ, происходит в самом начале.
А можете пояснить, что за такой «общий ключ для всех запросов»? Это тоже самое, что и «ключ общего объекта»? И как его или их лочит транзакция? А то как-то непонятно.
Да с билайном вообще в последнее время что-то не так. То в 4 утра, когда ты спокойно спишь, приходят смс, уведомляющие, что ты подрубил услугу на платный контент. То в личном кабинете цена услуги 0р, а с тебя ежедневно снимают по 1.5р. Тех. поддержка проблемы даже примерно решать не намерена. С ее слов, во всем всегда виноват потребитель. Цены услуг надо смотреть не в личном кабинете, а где-то там у них на сайте. Платный контент ты сам ночью бодрубаешь, видимо, в состоянии лунатизма. Не становитесь их клиентами, пожалеете...
Честное слово, вы сами себе придумали «главную проблему» и попытались её героически решить. Но тут нет никаких проблем, все решается стандартно. То, что вы вынесли в базовый класс, можно было бы сделать по-другому. Так то, что вы назвали «сохранением», решается стандартно из коробки через биндинги. Для расчета достаточно было добавить ещё одно св-во класса, которое бы и производило этот расчет, вывести это поле сразу на форму, а не заставлять бедного пользователя нажимать кнопки и закрывать после этого модальные окна. Могу посоветовать вам почитать про концепцию бизнес-объекта в книге Р. Лотка «c# и CSLA.Net»
Плохо. Если бы вы использовали data binding, то очень сильно удивились бы, сколько лишнего и кривого кода вы понаписали. Наверно, после таких вот архитектур и появляются статьи про то, что ООП уже не торт.
Вы, видимо, невнимательно прочитали статью. На KitKat ваш пример не будет работать ожидаемо. А именно, «после закрытия приложения и завершения всех Activity» служба работать не будет. И, пожалуйста, не путайте push-уведомления и notification. К чему я пишу это. Ваша статья может оказаться немного «вредной» для людей, кто просто решит взять ваш плагин, не разбираясь, что к чему. Неплохо было бы его доработать, выложить на гитхаб. Тогда бы этот плагин несомненно стал полезным и нужным.
А мне не понравилось:
1) Оформление статьи. Скрины экрана телефона не помещаются на экран моего монитора.
2) Период в 5 сек. Замерьте, пожалуйста, через какой промежуток времени ваше приложение сожрет всю батарею. Даже если это просто пример, не мешало бы написать, что так делать совсем не стоит.
3) Про «на форумах утверждали, что создать полноценный фоновый процесс на Cordova невозможно» совершенно правильно написано. То что вы добавили «START_STICKY», еще ничего не значит, так как это работает не всегда. Так как вы и так выводите notification, надо было делать foreground службу. Почитайте эту статью habrahabr.ru/post/265159
Martin FAwler поправьте плиз. В оригинальной статье правильно через O
Это не ответ. Вы б еще на msdn ссылку дали. Уточню вопрос. Дедлок — это ведь про 2 ресурса и 2х клиентов. Он может возникнуть и при синхронных вызовах и при асинхронных. Вот мне интересно, почему именно синхронность создавала дедлоки. Или тут неточность формулировок, или потрудитесь ответить.
Поподробнее можно об этом «Синхронность создавала дедлоки основных таблиц»?
Все равно непонятно. Ок. Попробую спросить по-другому. Этот ключ, который объект меню ресторана, физически — это запись в БД? И под "лочит" понимается update lock в БД?
А можете пояснить, что за такой «общий ключ для всех запросов»? Это тоже самое, что и «ключ общего объекта»? И как его или их лочит транзакция? А то как-то непонятно.
Да с билайном вообще в последнее время что-то не так. То в 4 утра, когда ты спокойно спишь, приходят смс, уведомляющие, что ты подрубил услугу на платный контент. То в личном кабинете цена услуги 0р, а с тебя ежедневно снимают по 1.5р. Тех. поддержка проблемы даже примерно решать не намерена. С ее слов, во всем всегда виноват потребитель. Цены услуг надо смотреть не в личном кабинете, а где-то там у них на сайте. Платный контент ты сам ночью бодрубаешь, видимо, в состоянии лунатизма. Не становитесь их клиентами, пожалеете...
«Лучше всех в колхозе работала лошадь. Но председателем она так и не стала.» — народная мудрость.
1) Оформление статьи. Скрины экрана телефона не помещаются на экран моего монитора.
2) Период в 5 сек. Замерьте, пожалуйста, через какой промежуток времени ваше приложение сожрет всю батарею. Даже если это просто пример, не мешало бы написать, что так делать совсем не стоит.
3) Про «на форумах утверждали, что создать полноценный фоновый процесс на Cordova невозможно» совершенно правильно написано. То что вы добавили «START_STICKY», еще ничего не значит, так как это работает не всегда. Так как вы и так выводите notification, надо было делать foreground службу. Почитайте эту статью habrahabr.ru/post/265159
Резюмирую: пока плохо.