Лучшая практика для интеграции веб-платформы CherryPy, сессий SQLAlchemy и lighttpd для обслуживания веб-сервиса высокой загрузки

Если я правильно понял, вы можете заменить group_by(Zip) на group_by(Zip, City)

df %>%
    filter(Year %in% c(2015,2017)) %>%
    spread(Year, Total_Population) %>%
    group_by(Zip, City) %>%
    summarise(
        Total2015 = sum(2015, na.rm = TRUE),
        Total2017 = sum(2017, na.rm = TRUE)) %>%
    mutate(Difference = Total2017 - Total2015)
## A tibble: 2 x 5
## Groups:   Zip [2]
#  Zip         City  Total2015 Total2017 Difference
#  <fct>       <fct>     <dbl>     <dbl>      <dbl>
#1 ZCTA5 00601 Adjun      2015      2017          2
#2 ZCTA5 00602 Agua       2015      2017          2

Пример данных

df <- read.table(text =
    "Zip        Year Total_Population Median_Income City  State
'ZCTA5 00601'    2015      18088         10833    Adjun   PR
  'ZCTA5 00602'  2017      40859         16353    Agua    AB", header = T)
6
задан ento 10 March 2009 в 04:21
поделиться

2 ответа

Если Вы смотрите на plugins.ThreadManager.acquire_thread, Вы будете видеть строку self.bus.publish('start_thread', i), где i индекс массива замеченного потока. Любой слушатель, подписанный на start_thread канал должен принять это i оцените как позиционный параметр. Поэтому перепишите свою функцию подключения для чтения: def connect(i):

Мое предположение это это перестало работать тихо так или иначе; я буду видеть, могу ли я разыскать это, протестировать и зафиксировать его.

1
ответ дан 17 December 2019 в 22:14
поделиться

Я также пытался присвоить возвращаемое значение scoped_session к GlobalSession (как он, делает здесь), но затем это выделило ошибки как UnboundExceptionError и другие погрешности нивелировки SA. (Параллелизм: 10, циклы: 1000, коэффициент ошибок: 16%)

Эта ошибка не произошла, если я не инстанцировал scoped_session класса явно.

т.е.

GlobalSession = scoped_session(session_maker(bind=engine, transactional=False))

def connect(thread_index):  
    cherrypy.thread_data.scoped_session_class = GlobalSession

def open_dbsession():  
    cherrypy.request.scoped_session_class = cherrypy.thread_data.scoped_session_class

def close_dbsession():  
    cherrypy.request.scoped_session_class.remove()
0
ответ дан 17 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: