Если им нужно делать разные вещи, то мне кажется, что у вас нет 2 экземпляров одной рабочей роли. В действительности у вас есть 2 разные рабочие роли.
Особенно при рассмотрении масштабируемости вашего приложения процессы должны иметь возможность работать более чем в одном экземпляре. Что происходит, когда задача, которую вы хотите запустить только в одной роли, становится достаточно большой, чтобы ее можно было масштабировать до 2 или более экземпляров роли?
Одним из преимуществ разработки для Azure является то, что вы получаете автоматическую масштабируемость, если правильно разрабатываете свое приложение. Если вы заставляете вас работать больше, чтобы получить что-то, что не масштабируется, то, что вы пытаетесь сделать.
Что вызывает запуск этой задачи? Если вы используете сообщение в хранилище очередей (как предложено Джоанн), то только одна рабочая роль заберет сообщение и обработает его, и не имеет значения, какой экземпляр вашей рабочей роли это делает.
Итак, если у вас есть одна рабочая роль, выполняющая подзадачу, и другая рабочая роль, выполняющая все остальное, просто добавьте 2 рабочие роли в свое решение Azure. Тем не менее, даже если вы это сделаете, рабочая роль, которая обрабатывает подзадачу, должна быть написана таким образом, чтобы, если вы когда-либо масштабируете ее для выполнения более одного экземпляра, она выполнялась правильно. В этом случае вы также можете придерживаться одной рабочей роли и кода для обработки сообщений вне очереди, чтобы запустить подзадачу.